AngularJs को दोबारा निष्पादन दोबारा प्रसारित किया गया



Answers

$ rootScope से वापसी कॉलबैक चलकर आप इसे हटा सकते हैं। $ पर ()

अर्थात

var destroyFoo;

destroyFoo = $rootScope.$on('foo', function() {});

$scope.$on('$destroy', function() {
  destroyFoo(); // remove listener.
});       
Question

मेरे एक कोणीय नियंत्रक के अंदर, मेरे पास यह है:

// controller A
$rootScope.$on("myEventFire", function(event, reload) {
    someAction();
});

दूसरे नियंत्रक में मेरे पास यह है:

// controller B
$scope.openList = function(page) {
    $rootScope.$broadcast('myEventFire', 1);
}

अब, यह एक एकल पृष्ठ ऐप है जब मैं शुरू में नियंत्रक पर जाता हूं और इस घटना को ट्रिगर करने का प्रयास करता हूं , तो कुछ एक्शन () को एक बार निष्पादित किया जा रहा है। अगर मैं नेविगेट कर फिर से नियंत्रक ए पर वापस आ जाता हूं और एक ही काम करता हूं , तो कुछ एक्शन () दो बार निष्पादित हो जाता है अगर मैं इसे फिर से करता हूं, तो यह तीन गुना और ऐसा होता है। मुझसे यहां क्या गलत हो रहा है?




मेरे मामले के लिए ...

if ($rootScope.$$listenerCount['myEventFire']) {
    $rootScope.$$listeners.broadcastShowMessageError = [];
};

$rootScope.$on('myEventFire', function (event, reload) {
    someAction();
})





Related