2012-07-18 11 views

Respuesta

26

Si está tratando de animar la eliminación de elementos, debe hacer esto antes de eliminarlos.

He creado un fiddle demostrando esto.

En la primera sección escuchas el evento $destroy que llama angular a elementos que se están eliminando de DOM.

En el segundo caso, he creado una directiva que se apaga y quito el elemento automático.

En el tercer caso, la directiva acaba de fundir el elemento y la eliminación se pasa al controlador.

Si desea eliminar el elemento que se elimina, no puede usar la primera opción.

Entre la segunda y la tercera personalmente sugiero la tercera porque es más flexible.

+1

gracias! esto funciona correctamente, excepto para IE8 (no probado en 9) –

+0

¿cuál es el problema con IE8? Si la aplicación ni siquiera representa los repetidores es probable porque no he agregado "class = 'ng-app'" en el ejemplo –

+0

El problema de la respuesta es que se basa en el enlace al elemento del elemento para eliminar la función. Creo que para que la directiva funcione sin interferir con la lógica del controlador/ui, el fadeOut debe activarse directamente cuando el elemento se elimina realmente de la variable de la lista. Traté de poner el código de fundido dentro del evento $ destroy, sin embargo, debido a que angular elimina el elemento inmediatamente después de la acción de empalme en la lista de matriz, la animación de fundido no tiene tiempo para continuar. ¿Alguna mejora de su solución anterior? –

Cuestiones relacionadas