AngularJS父指令与child指令通信

use*_*145 9 javascript angularjs

考虑两个带有隔离范围的嵌套指令:

<dctv1>
    <dctv2></dctv2>
<dctv1>
Run Code Online (Sandbox Code Playgroud)

如果我想dctv2dctv1我交谈,我可以选择:

  1. 我可能要求控制器dctv1在定义中dctv2使用require:'^dctv1'
  2. 我可以调用对父范围的表达与包装<dctv2 callParent="hello()"></dctv2>scope:{callParent:'&'}
  3. 我也可以用$scope.$emitdctv2后来所有父范围会听到该消息.

现在我想dctv1谈谈dctv2.

  1. 我可以实现这一目标的唯一方法就是使用$scope.$broadcast,但所有孩子都会听到.

通过这里谈话,我的意思是称为函数或类似函数.不想设置堵塞digestloop的手表.

如何以最佳方式进行dctv1通知dctv2,使它们松散耦合?我应该能够删除dctv2而不会出错.

小智 -1

您可以使用必须传递给父级的每个子级的 id 来管理它;父级将使用该 id 广播回事件:只有当从父级传递的 id 是他自己的 id 时,子级才会执行该操作。

再见