【问题标题】:How to use single angular controller with two different angular states(views)?如何使用具有两种不同角度状态(视图)的单个角度控制器?
【发布时间】:2015-01-27 07:33:46
【问题描述】:

我有两个不同的视图/状态(扩展,q_and_a),它们有一个名为通知的选项卡。通知是一个独立的状态,有自己的控制器。 通知控制器将对扩展和 q_and_a 执行完全相同的操作,但我可以将其作为 stateparams 发送。

如何重用具有不同状态的相同通知控制器?或将通知选项卡作为指令是比重用它更好的解决方案。 (虽然有大量的返工)

【问题讨论】:

    标签: angularjs angular-ui-router


    【解决方案1】:

    可以复用控制器。 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
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-12
    • 1970-01-01
    相关资源
    最近更新 更多