Javascript 跨多个angularjs项目共享通用功能/配置
我有多个angularjs项目,每个项目都包含多个页面。 我需要为$http共享一些公共配置,其中包含一些公共配置设置和跨这些项目的响应拦截器。 我如何在多个angularjs项目中共享这个公共部分。每个项目都加载angularjs,并通过获取bower_依赖项进行构建 我不知道每个项目中模块的绝对路径 具体来说,我需要将withCredentials设置为true,在请求中设置一些公共头,并为所有项目设置公共响应拦截器。有没有办法分享这一点Javascript 跨多个angularjs项目共享通用功能/配置,javascript,angularjs,Javascript,Angularjs,我有多个angularjs项目,每个项目都包含多个页面。 我需要为$http共享一些公共配置,其中包含一些公共配置设置和跨这些项目的响应拦截器。 我如何在多个angularjs项目中共享这个公共部分。每个项目都加载angularjs,并通过获取bower_依赖项进行构建 我不知道每个项目中模块的绝对路径 具体来说,我需要将withCredentials设置为true,在请求中设置一些公共头,并为所有项目设置公共响应拦截器。有没有办法分享这一点 我可以用它来构建一个通用的angularjs模块吗?
我可以用它来构建一个通用的angularjs模块吗?如果可以,那么如何使用bower_依赖项呢?您可以在配置阶段完成
app.config(['$httpProvider',function ($httpProvider) {
$httpProvider.defaults.withCredentials = true;
// REST OF DEFAULTS
}]);
阅读有关
$httpProvider
和的更多信息,您所描述的是模块如此方便的原因
每个模块都可以有自己的配置或运行阶段、服务等,因此将所需内容包装到一个模块中并将该模块注入多个项目与您已经使用的其他第三方模块没有什么不同
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(...
您可以将其分为两部分:如果您使用grunt,那么可以使用grunt ng constant之类的东西,它可以获取配置属性并创建一个配置模块,您可以在需要时将其注入到任何地方。然后为响应拦截器模块创建一个单独的项目,并让每个角度项目通过bower拉入响应拦截器模块。