Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cassandra/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angularjs 如何使用具有两种不同角度状态(视图)的单个角度控制器?_Angularjs_Angular Ui Router - Fatal编程技术网

Angularjs 如何使用具有两种不同角度状态(视图)的单个角度控制器?

Angularjs 如何使用具有两种不同角度状态(视图)的单个角度控制器?,angularjs,angular-ui-router,Angularjs,Angular Ui Router,我有两种不同的视图/状态(extension、q_和a),它们有一个名为Notifications的选项卡。通知是一个单独的状态,有自己的控制器。 Notifications controller将使用不同的notifiable_类型和notifiable_id对扩展和q_和a执行完全相同的操作,我可以将其作为状态参数发送 如何重用具有不同状态的同一通知控制器?或者将通知选项卡作为一个指令,这是比重用它更好的解决方案。(尽管需要大量返工)重用控制器是可以的。这些状态定义存在以下问题: .stat

我有两种不同的视图/状态(extension、q_和a),它们有一个名为Notifications的选项卡。通知是一个单独的状态,有自己的控制器。 Notifications controller将使用不同的notifiable_类型和notifiable_id对扩展和q_和a执行完全相同的操作,我可以将其作为状态参数发送


如何重用具有不同状态的同一通知控制器?或者将通知选项卡作为一个指令,这是比重用它更好的解决方案。(尽管需要大量返工)

重用控制器是可以的。这些状态定义存在以下问题:

.state('other', {
  url: "/other",
  templateUrl: 'tpl.html',
  controller: 'controllerParent',
})

.state('parent', {
  url: '/parent',
  templateUrl: 'tpl.html',
  controller: 'controllerParent',
})
两者都使用相同的控制器:

app.controller('controllerParent', function($scope, $state){
})
如果您可以为它们提供相同的参数集,如
函数($scope,$state,$stateparms,…)
,例如使用resolve。。它会对你有用的

原因是:控制器被一次又一次地实例化。以及每个视图的不同实例。即使视图是一个父状态的同级。这就是与工厂、服务业的区别。。。哪些是单身

检查一下

如果有帮助,那太好了,先生;)享受奇妙的
UI路由器