15 ŞUBAT 2013, Cuma
Nasıl angularJS yayın bir olay üyeliğinizi iptal etmek için. Nasıl Kaldır üzerine kayıtlı) $fonksiyonu
Yayın olayı kullanarak bir dolar için dinleyici işlevi dolarımı kayıtlı
$scope.$on("onViewUpdated", this.callMe);
ve un-kayıt bu dinleyici belirli bir iş kuralına göre yapmak istiyorum. Ama benim sorunum bir kez BM-kayıt yapamam kayıtlı olmasıdır.
BM-kayıt AngularJS herhangi bir yöntem, belirli bir dinleyicisi var mı? Bir yöntem gibi $un-kayıt bu olay, $kapalı olabilir. İş mantığa göre öyle diyebilirim
$scope.$off("onViewUpdated", this.callMe);
ve bu işlev birisi "" olay. onViewUpdated yayın çağrıldığını dur
Teşekkürler
EDİT: De-kayıt için başka bir işlevi dinleyici istiyorum. Ben kayıt fonksiyonu.
CEVAP
15 ŞUBAT 2013, Cuma
Bu kaynak kod :) bulundu en azından 1.0.4. Sadece kısa olduğu için tam kodu göndeririz
/**
* @param {string} name Event name to listen on.
* @param {function(event)} listener Function to call when the event is emitted.
* @returns {function()} Returns a deregistration function for this listener.
*/
$on: function(name, listener) {
var namedListeners = this.$$listeners[name];
if (!namedListeners) {
this.$$listeners[name] = namedListeners = [];
}
namedListeners.push(listener);
return function() {
namedListeners[indexOf(namedListeners, listener)] = null;
};
},
Senin durumunda iade işlevi hatırlamamız gerekiyor
var offCallMeFn = $scope.$on("onViewUpdated", callMe);
//this will deregister that listener
offCallMeFn();
Bunu Paylaş:
Nasıl AngularJS $http isteği iptal etm...
Nasıl bir yerel gıt taahhüt iptal etme...
Nasıl iptal jQuery/AJAX isteği iptal e...
Dosya giriş alanları değişiklikleri ko...
nasıl eğer Alıcı android kayıtlı olup ...