【发布时间】:2015-01-27 07:33:46
【问题描述】:
我有两个不同的视图/状态(扩展,q_and_a),它们有一个名为通知的选项卡。通知是一个独立的状态,有自己的控制器。 通知控制器将对扩展和 q_and_a 执行完全相同的操作,但我可以将其作为 stateparams 发送。
如何重用具有不同状态的相同通知控制器?或将通知选项卡作为指令是比重用它更好的解决方案。 (虽然有大量的返工)
【问题讨论】:
标签: angularjs angular-ui-router
我有两个不同的视图/状态(扩展,q_and_a),它们有一个名为通知的选项卡。通知是一个独立的状态,有自己的控制器。 通知控制器将对扩展和 q_and_a 执行完全相同的操作,但我可以将其作为 stateparams 发送。
如何重用具有不同状态的相同通知控制器?或将通知选项卡作为指令是比重用它更好的解决方案。 (虽然有大量的返工)
【问题讨论】:
标签: angularjs angular-ui-router
可以复用控制器。 some plunker 带有这些状态定义:
.state('other', {
url: "/other",
templateUrl: 'tpl.html',
controller: 'controllerParent',
})
.state('parent', {
url: '/parent',
templateUrl: 'tpl.html',
controller: 'controllerParent',
})
两者都使用相同的控制器:
app.controller('controllerParent', function($scope, $state){
})
如果您可以为它们提供相同的参数集,例如function($scope, $state, $stateParams,...),例如有决心..它会为你工作
原因是:控制器被一次又一次地实例化。每个视图都有不同的实例。即使视图是一个父状态的兄弟。这就是与单例的工厂、服务...相比的区别
查看here
【讨论】:
UI-Router