5

假设我有一个控制器,它依赖于两个模块,它们都包含同名的指令或服务。我可以指定到底应该使用哪一个吗?

angular.module('myApp', ['secondModule', 'thirdModule'])
    .controller('Ctrl1', ['$scope', 'myService', function(scope, myService){
        scope.user = myService.getUser();   
        console.log(myService); 
}]);

在这种情况下,secondModulethirdModule都有一个名为myService的服务。但是在这个例子中只使用了来自thirdModule的那个。我尝试将 secondModule.myService 之类的东西作为Ctrl1的依赖项,但它不起作用。AngularJS 中有某种命名空间吗?

4

3 回答 3

2

目前,不,没有基于模块的命名空间。你必须自己避免碰撞。

我相信有一些关于这个的讨论,但我现在找不到它。

于 2013-02-21T21:31:05.797 回答
0

我使用以下约定:https ://github.com/roytruelove/angular-grunt-coffeescript#modules-and-angular-items

于 2013-02-22T00:35:15.287 回答
0

如何命名服务(以及控制器)?

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); 
        }]
    );
于 2015-06-26T15:39:45.223 回答