与未明确定义的兄弟控制器通信

时间:2015-10-15 14:34:59

标签: angularjs controller siblings angularjs-rootscope angular-broadcast

您好我有以下情况

我有一个带有Method的控制器,它设置超时并调用模态以及其他操作:

angular
    .module('app')
    .controller('GlobalController', GlobalController);

function GlobalController($scope, $rootScope, ....) {
  var vm = this;

      $scope.$on("callMethod", function(){ 
         vm.showModal();
      });
}

我希望能够从应用程序中的任何其他控制器访问特定的 showModal()方法

所以我有以下选项

  

$ emit(name,args);

     

通过范围向上调度事件名称   层次结构通知已注册的$ rootScope.Scope监听器。

使用$emit我必须将GlobalController定义为父级,因为它的“向上”

  

$ broadcast(name,args);

     

将事件名称向下调度到所有人   儿童范围(及其子女)通知已登记的儿童   $ rootScope.Scope听众。

对于任何这些解决方案,我必须在应用程序中明确定义控制器(我的意思是在视图上),以便将其用作父或子,有没有办法做到这一点,(即使它不是控制器)?

0 个答案:

没有答案