【问题标题】:Can I pass multiple controllers in $routeProvider.when() in angularJS?我可以在 angularJS 中的 $routeProvider.when() 中传递多个控制器吗?
【发布时间】:2014-09-23 13:17:42
【问题描述】:

我尝试在各种线程上搜索此内容,但我无法最终理解这一点。

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

我尝试执行上述 sn-p,但它不起作用。我可以做这样的事情吗?如果是,那我在这里做错了什么?

【问题讨论】:

  • 有什么要求,你需要什么??
  • 我想根据第一个控制器响应中的项目从第二个控制器获取 ajax 响应。

标签: angularjs angularjs-routing


【解决方案1】:

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

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

或者...

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

【讨论】:

  • 这是正确的答案,但我也推荐指令,因为指令也可以附加一个控制器。特别是可重复元素可以从设置为指令中受益。
  • 我想出了足够的 UI-Router 来开始使用,但是除了创建一个父控制器来传递多个控制器之外,我仍然想不出办法。
  • 你的最后一句话暗示你可以用 UI-Router 做到这一点,但我猜,更巧妙的是 你不必用 UI-Router。是哪个?
猜你喜欢
  • 1970-01-01
  • 2014-07-30
  • 1970-01-01
  • 2015-09-23
  • 1970-01-01
  • 1970-01-01
  • 2017-06-09
  • 2013-01-09
相关资源
最近更新 更多