我创建了两个指令,比如A和B:
<A>
<B />
</A>
A是一个转录。 A和B的范围都是从他们的控制器继承的。
我想使用事件连接A和B.根据他们都使用ng-controller范围我必须写这样的东西: 在A的控制器中
$scope.$parent.$broadcast(..)
在B的控制器中:
$scope.$on(...)
工作正常。
但是如果我不想使用ng-controllers怎么办?就像我正在开发包含子指令的独立复杂指令(如A包含B)。是否有可能说角度从A的范围继承B的范围?所以我可以这样做: 在A的:
$scope.$broadcast(..)
和B的
$scope.$on(..)
答案 0 :(得分:3)
您可以使用具有通知语义的服务在两个或多个控制器/指令之间进行通信。有一个很好的example of that here。
您使用它的方式是在pubsub
上的指令中使用依赖项,然后使用发布/订阅方法发送/接收消息。
----更新----
我对此有了更多的了解,并发现这两个指令实际上共享范围,因此您可以直接更新范围值。您也可以使用广播。我把另一个demo of the broadcast method here放在一起。