在init angular-ui-router的下面的代码中,
如果我有两个模块,它们都有IndexController,这将是ui-router使用的?我可以通过angular.module('targetModule').findController('IndexController')
?
state: 'index',
url: '/',
views: {
'' : {
templateUrl: 'index',
controller: 'IndexController'
}
}
答案 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.
}]);