从另一个指令的控制器

时间:2015-11-25 15:53:44

标签: angularjs

我有一个指令DirectiveA,在其控制器中定义了一个方法x。我需要从另一个指令(DirectiveB)控制器调用此方法。

问题出在我正在处理的app上,因为当你需要去一个特定的路径时,你基本上会调用另一个由Angular呈现的指令。我要找的是找到一种在呈现页面后调用x方法的方法。 x在调用时会在我的页面上显示一个元素。

你能帮我解决这个问题吗?

1 个答案:

答案 0 :(得分:1)

您可能希望使用事件,可以使用$emit向上触发事件,或使用$broadcast向下触发事件。您使用$on侦听器捕获/订阅事件。

因此,在你的指令控制器上你会听到这个事件(你也可以订阅$rootScope但是你需要在指令销毁时手动取消绑定监听器)

$scope.$on('mySpecialEvent', function (event, data) {
   ... DO YOUR STUFF ... 
});

DirectiveB上,当您想要在DirectiveA的听众中执行操作时,您将触发该事件:

$rootScope.$broadcast('mySpecialEvent', 'HI');