2012-07-18 12 views

risposta

26

Se si sta tentando di animare la rimozione dell'elemento è necessario eseguire questa operazione prima che venga rimosso.

Ho creato un fiddle dimostrando questo.

Nella prima sezione si ascolta l'evento $destroy chiamata angolare agli elementi che vengono rimossi dal DOM.

Nel secondo caso ho creato una direttiva che fadeOut e rimuove l'elemento automatico.

Nel terzo caso la direttiva sbiadisce appena l'elemento e la rimozione viene passata al controller.

Se si desidera sfumare l'elemento rimosso, non è possibile utilizzare la prima opzione.

Tra il secondo e il terzo suggerisco personalmente il terzo perché è più flessibile.

+1

grazie! questo funziona correttamente eccetto per IE8 (non testato su 9) –

+0

ha il problema con IE8? Se l'app non esegue il rendering dei ripetitori probabilmente perché non ho aggiunto "class = 'ng-app'" nell'esempio –

+0

Il problema relativo alla risposta è che si basa sull'associazione alla funzione di clic dell'elemento per la rimozione. Penso che per far funzionare la direttiva senza interferire con il controller/la logica ui, il fadeOut dovrebbe essere attivato direttamente quando l'elemento viene effettivamente rimosso dalla variabile list. Ho provato a inserire il codice di dissolvenza all'interno dell'evento $ destroy, tuttavia poiché l'elemento angolare viene rimosso immediatamente dopo l'azione di splicing nell'elenco di array, l'animazione di dissolvenza non ha il tempo di procedere. Qualche miglioramento dalla tua soluzione sopra? –

Problemi correlati