我可以在angularJS中的$ routeProvider.when()中传递多个控制器吗?

时间:2014-07-31 14:29:49

标签: angularjs angularjs-routing

我尝试在各种线程上搜索这个,但我无法理解这一点。

test.config(['$routeProvider', function($routeProvider){
$routeProvider
    .when('/',
        {
            controller:'SimpleController1',
            templateUrl: 'partials/1.html'
        })
    .when('/xyz',
        {
            controller:'SimpleController1, SimpleController2',
            templateUrl:'partials/2.html'
        })
    .otherwise({ redirectTo: '/'});
}]);

我尝试过上面的代码片段,但它没有用。我可以这样做吗?如果是,那么我在这里做错了什么呢?

1 个答案:

答案 0 :(得分:13)

只允许一个控制器,并将作为ng-view中的控制器分配给加载模板。无需在模板中为主控制器定义ng-controller

如果您需要定义多个控制器,我建议您定义一个主/父控制器并在routeProvider中使用它,然后使用ng-controller指令将其他控制器放在模板中。

...或

使用Angular UI的 UI-Router http://angular-ui.github.io/,这是一个更通用的路由器。