我想知道是否有一种方法可以使提供程序的配置不是在整个应用程序中唯一,而是在配置它的模块中唯一。
例如,我有一个模块“核心”,其中包含提供者的定义。然后我有模块“module1”和“module2”,它们使用提供程序,但必须以特定方式为特定模块配置它。
我发生的事情是在最后定义的模块中完成的配置覆盖了在应用程序中使用提供程序的所有其他模块中完成的配置。
我做了这个简单的 plunker 来举例说明:
var app = angular.module('app', ['module1','module2']);
angular.module('core',[])
.provider('movie', function () {
var version;
return {
setVersion: function (value) {
version = value;
},
$get: function () {
return {
title: 'The Matrix' + ' ' + version
}
}
}
});
angular.module('module1',['core'])
.config(function (movieProvider) {
movieProvider.setVersion('Reloaded');
})
.controller('ctrl1', function ($scope,movie) {
$scope.title = movie.title;
$scope.module = 'module1';
});
angular.module('module2',['core'])
.config(function (movieProvider) {
movieProvider.setVersion('Revolutions');
})
.controller('ctrl2', function ($scope,movie) {
$scope.title = movie.title;
$scope.module = 'module2';
});