title: $scope.$on not triggering after $rootScope.$broadcast in angular service
body: <p>This may be the repeated question but the workaround I found for this issue is not working in my case thats why I am posting the question.</p>
  
  <p>I've following <strong>service:</strong></p>
  
  <pre><code>appRoot.service('MyService', function($rootScope) {
      var Messenger = {
          Temp: "",
          TempId:"",
          tempMethod: function(Id) {
              TempId = Id;
              $rootScope.$broadcast('FirstCtrlMethod');
          }
      };
      return Messenger ;
  });
  </code></pre>
  
  <p>In <strong>second controller:</strong></p>
  
  <pre><code>appRoot.controller('SecondCtrl', function ($scope, $location, MyResource, NotificationService, MyService) {
   $scope.invokeFirstCtrl= function() {
          var Id = '2';
          MyService.tempMethod(Id);
  });
  </code></pre>
  
  <p>In <strong>first controller:</strong></p>
  
  <pre><code>appRoot.controller('FirstCtrl', function ($scope, $compile, $filter, $modal, $sce, $location, NotificationService, MyService) {
  $scope.$on('FirstCtrlMethod', function () {        
          alert('I am from frist controller');
      });
  });
  </code></pre>
  
  <p><strong>Problem:</strong> The line <em>"$rootScope.$broadcast('FirstCtrlMethod');"</em> is executing as expected but it is not causing to fire event <em>"$scope.$on('FirstCtrlMethod', function () {.."</em> in the first controller.
  I've used the differenct services in many places in my app in the same way and they are workig fine, I am not understanding why it is not working here.</p>