Shahzad Nasir
Shahzad Nasir

Reputation: 168

Angular broadcast event not received in other controller

Header contorller

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 contorller

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>

All files are included. Angular is working fine but broadcast events are not received.

Upvotes: 1

Views: 70

Answers (1)

Adil Sarwar
Adil Sarwar

Reputation: 122

Try using $rootScope to broadcast event:

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

Upvotes: 1

Related Questions