I am communicating from page2 controller to page1 controller in different views using $.emit and $on
     app.controller('mainController', ['$scope', function($scope) {
      $scope.message = "hello main page";
      $scope.$on('frompage2', function(event, data) {
        console.log("in parentController.........." + data);
      })
    }]);
    app.controller('page1Controller', ['$scope', '$rootScope', function($scope, $rootScope) {
      $scope.message = "hello page1";
      var msgFromPage2 = $rootScope.$on('frompage2', function(event, data) {
        console.log("in page1 controller" + data);
      })
      $scope.$on('$destroy', function() {
        msgFromPage2()
      });
    }]);
    app.controller('page2Controller', ['$scope',
      function($scope) {
        $scope.message = "Hello page 2"
        $scope.$emit('frompage2', 'this is from page2');
      }
    ]);
Its working fine if I don't use page1 controller scope destroy method to unsubscribe from event listening. What should be the correct approach to handle this situation so that I can subscribe to page2controller messages and still using destroy method in page1 controller scope to unsubscribe whenever page1 is getting unloaded