跨多个angularjs项目共享通用功能/配置

时间:2016-02-18 20:02:39

标签: javascript angularjs

我有多个angularjs项目,每个项目包含多个页面。 我需要为$ http共享一些常见的配置,其中包含一些常见的配置设置和跨这些项目的响应拦截器。 我如何在多个angularjs项目中共享这个共同的部分。每个项目都加载angularjs,并通过获取bower_dependencies来构建。

我不知道每个项目中模块的绝对路径。

具体来说,我需要将withCredentials设置为true并在请求中设置一些公共头,并为所有项目设置公共响应拦截器。有没有办法分享这个?

我是否可以构建一个常见的angularjs模块,如果是,那么bower_dependencies的工作原理如何?

2 个答案:

答案 0 :(得分:0)

您可以在配置阶段

中执行此操作
app.config(['$httpProvider',function ($httpProvider) {
     $httpProvider.defaults.withCredentials = true;
     // REST OF DEFAULTS
}]);

详细了解$httpProvider herehere

答案 1 :(得分:0)

您所描述的是模块如此方便的原因

每个模块都可以拥有自己的配置或运行阶段,服务等,因此将您需要的内容包装到一个模块中并将该模块注入多个项目与您已经使用的其他第三方模块没有什么不同。 / p>

angular.module('myUniversalModule', [])
  .constant('someconstant',123)
  .factory('myUniversalInterceptor', function() {
    var myInterceptor = {
      ....      
    };
    return myInterceptor;

  }).config(['$httpProvider', function($httpProvider) {
      $httpProvider.interceptors.push('myUniversalInterceptor');
      $httpProvider.defaults.withCredentials = true;
    }
  ]);

然后注入任何应用

angular.module('thisMainApp', ['myUniversalModule'])
       .config(....
       .run(....
       .factory(....
       .constant(...
       .controller(...