Javascript 如何区分AngularJS中注入模块的名称空间?
假设我有一个控制器,它依赖于两个模块,这两个模块都包含一个指令或具有相同名称的服务。我能具体说明应该使用哪一种吗Javascript 如何区分AngularJS中注入模块的名称空间?,javascript,namespaces,angularjs,Javascript,Namespaces,Angularjs,假设我有一个控制器,它依赖于两个模块,这两个模块都包含一个指令或具有相同名称的服务。我能具体说明应该使用哪一种吗 angular.module('myApp',['secondModule','thirdModule'])) .controller('Ctrl1',['$scope','myService',函数(scope,myService){ scope.user=myService.getUser(); console.log(myService); }]); 在这种情况下,secon
angular.module('myApp',['secondModule','thirdModule']))
.controller('Ctrl1',['$scope','myService',函数(scope,myService){
scope.user=myService.getUser();
console.log(myService);
}]);
在这种情况下,secondModule和thirdModule都有一个名为myService的服务。但本例中仅使用第三个模块中的一个。我尝试将类似于secondModule.myService的内容作为Ctrl1的依赖项,但它不起作用。AngularJS中是否存在某种名称空间?目前,不存在基于模块的名称空间。你必须自己避免碰撞
我相信对此进行了一些讨论,但我现在找不到。我使用以下约定:如何命名服务(以及控制器)的名称空间
你真的应该避免这个!!目前,这似乎是不可能的。在开发可能包含许多指令/服务/常量等的大型应用程序时,这似乎是一个真正的问题。在我看来,使用简单的命名约定并不是一个足够强大的机制。
angular.module('secondModule', [])
.factory('secondModule.myService', function($http) {
return {
getUser: function() { /* some code here */ }
};
});
angular.module('thirdModule', [])
.factory('thirdModule.myService', function($http) {
return {
getGroup: function() { /* some code here */ }
};
});
angular.module('myApp', ['secondModule', 'thirdModule'])
.controller('myApp.Ctrl1',
['$scope', 'secondModule.myService', function(scope, myService){
scope.user = myService.getUser();
console.log(myService);
}]
);