Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.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_Angularjs Service_Angularjs Controller - Fatal编程技术网

Angularjs 与另一个特定控制器通信

Angularjs 与另一个特定控制器通信,angularjs,angularjs-service,angularjs-controller,Angularjs,Angularjs Service,Angularjs Controller,我有点迷路了。。。我对Angular和编写一个用于练习的小应用程序相当陌生 我有两个视图和一个表,每个视图都有自己的控制器。这些表使用一些相同的功能,如编辑、保存。。。为了避免重复代码,我将这些函数放在一个单独的控制器中。现在,如果在一个视图中,例如表格行中的数据被编辑和保存,我想触发一个事件,通知该视图的特定控制器,并发送带有该事件的新对象。我已经试过了,但不确定这是不是正确的方法 因此,现在我的TableEditController是每个表视图特定控制器的父级,我可以使用$emit发送事件。

我有点迷路了。。。我对Angular和编写一个用于练习的小应用程序相当陌生

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

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


有什么想法或想法吗?

如果您想与控制器交流,请显示“创建父控制器”,如下所示

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


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

将您的业务逻辑放入
服务中
,并与您的
控制器共享
服务
,以避免代码重复


如果您也有相同的
控制器
方法(以及很多方法),那么创建一个具有相同逻辑的
父控制器(或通过
原型
继承)。

尝试使用服务而不是控制器来控制类似的功能。@ThorJacobsen是的,这就是我计划要做的。但我不确定如何只向相关的特定控制器广播或发射。