使用angular-ui-router时,处理多个具有相同名称的控制器

时间:2014-03-02 22:45:18

标签: angularjs angular-ui-router

我正在使用Angular-UI-Router构建应用程序。我有一个依赖于子模块的顶级Angular模块,那些子模块的控制器名称如下:

var moduleA = angular.module('moduleA', []);
moduleA.controller('SameNameCtrl', function () {
  // ModuleA SameNameCtrl implementation
});

var moduleB = angular.module('moduleB', []);
moduleB.controller('SameNameCtrl', function () {
  // ModuleB SameNameCtrl implementation
});

var app = angular.module('app', ['ui.route', 'moduleA', 'moduleB']);

使用Angular-UI-Router构建状态时,如何在不同模块中指定控制器?

$stateProvider
  .state('app.stateA', {
    url: '/stateA',
    templateUrl: 'template-A.html',
    controller: ????  // how to specify moduleA SameNameCtrl
  })
  .state('app.stateB', {
    url: '/stateB',
    templateUrl: 'template-B.html',
    controller: ????  // how to specify moduleB SameNameCtrl
  })

当然,我可以为不同模块中的控制器分配不同的控制器名称,但我想知道控制器是否可以使用相同名称。

谢谢!

1 个答案:

答案 0 :(得分:3)

不幸的模块不是angularjs中的命名空间机制。您应该按照命名约定来区分控制器