2012-07-18 68 views

回答

26

如果您嘗試對元素的移除進行動畫處理,則需要在刪除元素之前執行此操作。

我創建了一個fiddle來演示這一點。

在第一部分中,您將聽到$destroy事件,該事件對從DOM中刪除的元素進行角度調用。

在第二種情況下,我創建了一個指令fadeOut並自動刪除元素。

在第三種情況下,指令只是fadeOut元素,並將刪除傳遞給控制器​​。

如果你想淡出被刪除的元素,那麼你不能使用第一個選項。

第二個和第三個之間我個人建議第三個,因爲它更靈活。

+1

謝謝!這工作正常,除了IE8(未在9測試) – 2012-07-18 21:58:14

+0

與IE8的威脅是什麼?如果應用程序甚至沒有渲染中繼器,可能是因爲我沒有在示例 – 2012-07-18 22:27:52

+0

上添加「class ='ng-app'」。答案的問題是依賴於綁定到元素的click for remove函數。我認爲該指令在不干擾控制器/ UI邏輯的情況下工作,當元素實際上從列表變量中移除時,應該直接觸發fadeOut。我試圖將淡入淡出的代碼放入$ destroy事件中,但是因爲在數組列表中的splice動作之後立即刪除元素,所以淡入淡出的動畫沒有時間繼續。上述解決方案有何改進? – 2013-01-23 04:14:07