2016-04-06 30 views
0

Ben dinamik olarak benim denetleyicisi mantığa dayalı olanlar işleyicileri kaldırmak isterseniz, Sonunda element.addEventListener(<event>, handler);AngularJS: Olay işleyicileri, bir yönergeyle eklenen bir öğeden nasıl kaldırılır?

aracılığıyla bağlantı() fonksiyonunda bir öğeye belli olaylar için olay dinleyicisi ekler bir nitelik yönergesi var. Bunu nasıl yapabilirim? Denetleyicideki öğe üzerinde removeEventListener öğesini çağırmayı düşündüm, ancak yönergemde olduğu için işleyici işlevine bir başvurum yok.

+0

Yönerge, dinleyiciye sahip olup olmadığını belirlemek için bir bayrağı kullanma gibi bir seçenek sunmalıdır veya dinleyiciyi eklemek/çıkarmak için bir api göstererek –

+0

$ emit veya $ yayını kullanabilirsiniz, ayrıca şunu da unutmayın Kapsamdaki tüm dinleyiciler. $ $ ('$ destroy', ...) bellek sızıntılarını önlemek için –

+0

@EvgenyPopov bu sayfadan öğeleri kaldırıyor olsaydım? Bu elemanlar sayfa kapanana kadar sayfada kalacaktır/görünüm değiştirilir – PDN

cevap

1

Sonunda olay işleyicilerini kaldırmak için kullanabilirsiniz.

scope.$on('$destroy', function() { 
     //Code to remove Event  
}); 

Ve arasına kaldırmak istiyorsanız o zaman yönergesi ve yayın içinde bir etkinliğini dinleyebiliriz veya istediğiniz zaman kontrol cihazından yayarlar.

İlgili konular