【问题标题】:Angular broadcast event not received in other controller其他控制器未收到角度广播事件
【发布时间】:2019-01-15 07:50:07
【问题描述】:

标题控制器

mapsModule = angular.module('maps-module');
mapsModule.controller('psHeaderCtrl', function($scope, $rootScope, MESSAGES, 
   psHttpSrvc){
   $scope.addAlertPin = function(){
     console.log('broadcast event');
     $scope.$broadcast('event1', { data:  'asdasdasasda'});
   }

});

地图控制器

map = angular.module('maps-module');
map.controller('map_controller',function 
  ($scope,$rootScope,$timeout) {
    $scope.$on('event1', function(event, args){
        console.log('asdasdasd');
    });
});

Header.html

 <div ng-controller="psHeaderCtrl">
  <ul class="nav navbar-toolbar navbar-right navbar-toolbar-right">
   <li class="nav-item" id="plus">
     <a class="nav-link" data-toggle="" href="javascript:void(0)" 
       title="plus" ng-click="addAlertPin()">
       <i class="icon wb-plus" aria-hidden="true"></i>
     </a>
   </li>
  </ul>
</div>

所有文件都包括在内。 Angular 工作正常,但未收到广播事件。

【问题讨论】:

    标签: javascript angularjs scope broadcast


    【解决方案1】:

    尝试使用$rootScope 广播事件:

    $scope.addAlertPin = function(){
       console.log('broadcast event');
       $rootScope.$broadcast('event1', { data:  'asdasdasasda'});
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-01-17
      • 1970-01-01
      • 1970-01-01
      • 2023-03-21
      • 1970-01-01
      • 2011-06-02
      • 2021-05-06
      相关资源
      最近更新 更多