控制器内部指令之间交换信息

时间:2015-11-06 15:42:44

标签: javascript angularjs

我尝试注册窗口关闭,最小化,最大化等事件,并在内部控制器内部使用它,这样我就可以在窗口关闭之前清理一些东西。我只是一个关于随机ID和广播的愚蠢想法。还有什么更好的吗?

窗口控制器

<div class="window">
   <div class="header">
      <a ng-click="minimize()">Minimize</a>
      <a ng-click="maximize()">Maximize</a>
      <a ng-click="close()">Close</a>
   <div class="content" ng-include="Controllers/someWindow.html"></div>
</div>

控制器/ someWindow.html

<div ng-controller="SomeWindowCtrl">

</div>

2 个答案:

答案 0 :(得分:4)

您可以将div.window元素包装到指令(例如,my-window)中并从中公开控制器。然后,其中的指令可以要求my-window作为父级,将其控制器作为链接函数的第四个参数。

可以找到一个简明的例子here

答案 1 :(得分:2)

您可以使用

$rootScope.$broadcast('EVENT_ID', data);

$rootScope.$on('EVENT_ID', function($event, data) {
    //event handler
});