与另一个特定控制器通信

Communicate to another, specific controller

我有点迷茫...我对 Angular 很陌生,正在编写一个小应用程序来练习。

我有两个带有 table 的视图,每个视图都有自己的控制器。 tables 使用一些相同的功能,如编辑、保存...为了避免重复代码,我将这些功能放在一个单独的控制器中。现在,如果在一个视图中,例如table 行中的数据已编辑并保存我想触发一个事件以通知该视图的特定控制器并发送带有该事件的新对象。我已经知道了 运行 但不确定这样做是否正确...

所以现在我的 TableEditController 是每个 table-view-specific Controller 的父级,我可以用 $emit 发送事件。通过做一些我读过的研究,你应该使用一个服务来进行通信,但是在例子中使用了 $rootScope 我认为这不是正确的方法,因为我只想通知特定的控制器关于更改以便它可以做进一步的处理(比如保存到数据库或其他)。

有什么想法或想法吗?

如果你想控制器通信,你显示创建父控制器如下

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

child_controller_1 和 child_controller_2 将通过 parent_controller.

进行通信

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

如果您也有相同的 controller 方法(并且有很多),则使用相同的逻辑创建一个 parent controller(或通过 prototype 继承)。