与另一个特定控制器通信

时间:2015-01-26 12:06:27

标签: angularjs angularjs-service angularjs-controller

我有点迷失......我对Angular很陌生,并为练习编写了一个小应用程序。

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

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

有什么想法或想法吗?

2 个答案:

答案 0 :(得分:0)

如果您想要控制器进行通信,则显示如下创建父控制器

<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进行通信。

答案 1 :(得分:0)

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

如果你有相同的controller方法(以及很多方法),那么用相同的逻辑创建一个parent controller(或通过prototype继承)。