我有一个指令DirectiveA
,在其控制器中定义了一个方法x
。我需要从另一个指令(DirectiveB
)控制器调用此方法。
问题出在我正在处理的app上,因为当你需要去一个特定的路径时,你基本上会调用另一个由Angular呈现的指令。我要找的是找到一种在呈现页面后调用x
方法的方法。 x
在调用时会在我的页面上显示一个元素。
你能帮我解决这个问题吗?
答案 0 :(得分:1)
您可能希望使用事件,可以使用$emit
向上触发事件,或使用$broadcast
向下触发事件。您使用$on
侦听器捕获/订阅事件。
因此,在你的指令控制器上你会听到这个事件(你也可以订阅$rootScope
但是你需要在指令销毁时手动取消绑定监听器)
$scope.$on('mySpecialEvent', function (event, data) {
... DO YOUR STUFF ...
});
在DirectiveB
上,当您想要在DirectiveA
的听众中执行操作时,您将触发该事件:
$rootScope.$broadcast('mySpecialEvent', 'HI');