Tworzę nową dyrektywę i zastanawiam się, jak otrzymać powiadomienie, gdy kątowe usunie element z DOM.
Moim celem jest dodanie animacji jQuery po usunięciu elementu.powiadomienie angularJS po usunięciu elementu
15
A
Odpowiedz
26
Jeśli próbujesz animować usunięcie elementu, musisz to zrobić, zanim zostanie on usunięty.
Stworzyłem fiddle demonstrując to.
W pierwszej sekcji można usłyszeć wydarzenie $destroy
, to połączenie kątowe z elementami, które są usuwane z DOM.
W drugim przypadku utworzyłem dyrektywę, która fadeOut i usuwa element automatycznie.
W trzecim przypadku dyrektywa właśnie zniknie z elementu, a usunięcie zostanie przekazane do kontrolera.
Jeśli chcesz wyciszyć element, który został usunięty, nie możesz użyć pierwszej opcji.
Pomiędzy sekundą a trzecią proponuję osobiście trzecią, ponieważ jest bardziej elastyczna.
dzięki! to działa poprawnie, z wyjątkiem IE8 (nie testowane na 9) –
powoduje problem z IE8? Jeśli aplikacja nie renderuje nawet repeaterów, prawdopodobnie nie dodałem "class = 'ng-app'" na przykładzie –
Problem z odpowiedzią polega na powiązaniu z kliknięciem elementu w celu usunięcia funkcji. Myślę, że aby dyrektywa działała bez ingerencji w logikę kontrolera/interfejsu użytkownika, fadeOut powinien być uruchamiany bezpośrednio, gdy element jest faktycznie usuwany ze zmiennej listy. Próbowałem umieścić kod zanikania wewnątrz zdarzenia $ destroy, jednak ponieważ kątowe usuwa element natychmiast po akcji splotu na liście tablic, animacja zanikania nie ma czasu na kontynuowanie. Jakieś ulepszenie z powyższego rozwiązania? –