当配置ui-router时,AngularJS从其他模块引用控制器

时间:2015-04-23 15:17:02

标签: angularjs angular-ui-router

在init angular-ui-router的下面的代码中,

如果我有两个模块,它们都有IndexController,这将是ui-router使用的?我可以通过angular.module('targetModule').findController('IndexController')

之类的东西找到对控制器的指定构造函数/函数的引用
state: 'index',
url: '/',
        views: {
            '' : {
                templateUrl: 'index',
                controller: 'IndexController'
            }
        }

2 个答案:

答案 0 :(得分:0)

将使用的控制器将是第一个加载的控制器。一旦定义了指令,服务或控制器,就不能被其他任何东西覆盖。

此时,必须避免名称冲突。

答案 1 :(得分:0)

在角度中,有一个$injector处理所有解析请求。我的建议是在注册时为控制器添加前缀。这样的事情可以避免姓名冲突:

var module1 = angular.module('m1', [....]);
var module2 = angular.module('m2', [....]);
module1.controller('m1.IndexController', ['$http', function($http) {
    // do something interesting.
}]);
module2.controller('m2.IndexController', ['$http', function($http) {
    // do something interesting else.
}]);