我有一个应用程序模块,其中包括另一个模块,例如模块a和b。但是模块a和b都依赖于模块c。请参阅以下内容
var app = angular.module('app', ['a', 'b']);
app.controller('AppCtrl', function(Containner) {
console.log(Containner); //Avaiable
});
var a = angular.module('a', ['c']);
a.controller('ACtrl', function(Containner) {
console.log(Containner); //Avaiable
});
var b = angular.module('b', ['c']);
b.controller('BCtrl', function(Containner) {
console.log(Containner); //Avaiable
});
var c = angular.module('c', []);
c.factory('Containner', function() {
return {
test: 'test'
}
});
据我了解,您只需要包含一个模块一次,然后您可以在其他模块中访问它,即使您没有将它作为它的依赖项包含在内。请参阅以下内容
var app = angular.module('app', ['a', 'b']);
app.controller('AppCtrl', function(Containner) {
console.log(Containner);
});
var a = angular.module('a',[]);
a.controller('ACtrl', function(Containner) {
console.log(Containner); //YOU CAN STILL GET IT
});
var b = angular.module('b', ['c']);
b.controller('BCtrl', function(Containner) {
console.log(Containner);
});
var c = angular.module('c', []);
c.factory('Containner', function() {
return {
test: 'test'
}
});
模块 A 没有 C 作为其依赖项,但它仍然可以访问 C 的服务。也就是说,我假设只要您在一个地方包含 C,您就可以在任何其他模块中使用它们,只要它们都包含在 Angular 应用程序中。
我更喜欢第一段代码,因为每个模块都清楚地告知开发人员它自己的依赖关系。但是,这似乎是多余的,因为您只需要包含一次,它将在其他地方可用。这种情况的最佳实践是什么,以及角度如何在幕后处理重复的依赖关系。