2012-07-18 28 views

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.

+1

dzięki! to działa poprawnie, z wyjątkiem IE8 (nie testowane na 9) –

+0

powoduje problem z IE8? Jeśli aplikacja nie renderuje nawet repeaterów, prawdopodobnie nie dodałem "class = 'ng-app'" na przykładzie –

+0

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? –

Powiązane problemy