代码之家  ›  专栏  ›  技术社区  ›  Christian

与其他特定控制器通信

  •  0
  • Christian  · 技术社区  · 10 年前

    我有点迷路了。。。我对Angular很陌生,正在编写一个用于练习的小应用程序。

    我有两个带有表的视图,每个视图都有自己的控制器。这些表使用一些相同的功能,如编辑、保存。。。为了避免重复代码,我将这些函数放在单独的控制器中。现在,如果在一个视图中(例如,表行中的数据被编辑并保存),我想触发一个事件来通知该视图的特定控制器,并发送带有该事件的新对象。我已经开始跑步了,但不确定这是不是正确的方式。。。

    所以现在我的TableEditController是每个表视图特定控制器的父级,我可以使用 $emit 。通过我读到的一些研究,您应该使用服务进行通信,但在示例中使用了$rootScope,我认为这不是正确的方法,因为我只想将更改通知特定的控制器,以便它可以进行进一步的处理(如保存到数据库或其他)。

    有什么想法吗?

    2 回复  |  直到 10 年前
        1
  •  0
  •   Amir Popovich    10 年前

    将您的业务逻辑放在 service 并共享 服务 与你 controllers 避免 代码重复。

    如果你也一样 controller 方法(以及许多方法),然后创建 parent controller (或通过继承 prototype )具有相同的逻辑。

        2
  •  0
  •   Phong Dao    10 年前

    如果要控制器通信,请显示创建父控制器,如下所示

    <div ng-controller="parent_controller">
       <div ng-controller="child_controller_1"></div>
       <div ng-controller="child_controller_2"></div>
    </div>
    

    子控制器1和子控制器2将通过父控制器进行通信。