2013-12-19 88 views
10

當談到以ng-repeat動畫動畫時,我有點fl ed不安。例如,如果我將一個數組項目從3移動到7,則項目4-7會向上移動並且它們會生成動畫。然而,我從3移動並放置在位置7的實際項目不。這是一個展示我的問題的好玩兒。在AngularJS中動畫ng動畫ngRepeat動畫動畫是錯誤的項目

http://plnkr.co/edit/4yRkLWbsU57YxrYOrWUQ?p=preview

運動項目7:3,但是,工程,我希望,動畫的單一移動的項目,而不是已經被按下的項目。

這對於向用戶展示什麼移動並不是很有用。一個人應該如何正確地設置ng-move的動畫?

+0

克里斯,這方面的進展如何? – Birowsky

+0

不,對不起。我最終在github上發現了這個問題,但我從來沒有得到滿意的行動。 https://github.com/angular/angular.js/issues/5160 – Chris

+0

upvote for使用(高度低估)的術語「flummoxed」 – drewmoore

回答

0

正確的語法是

arrayVar.splice(to, 0, arrayVar.splice(from, 1)); 

要刪除和索引陣列arri在返回的元素,使用arr.splice(i, 1)

+0

感謝您的快速回答。不幸的是,這似乎工作,因爲它引發了ng-enter和ng-leave。我更新了plunkr以不同的方式顯示動畫。 – Chris

+0

@Chris我沒有得到它。我認爲我的修復仍然有效。你不需要'[0]' – zsong

+0

通過返回array.splice(i,1),你返回一個數組,而不是元素。這會觸發ng-leave/ng-enter,而不是AngularJS中的ng-move轉換。 plunkr是我可以做的最簡單的例子,用來說明ng-move(實際上是在我的真實代碼中進行排序時觸發的)不會影響實際的移動項目。我更新了PLUNK以顯示離開/進入/移動爲紅色/綠色/藍色。這是藍色的動畫是我的問題。我對此感到抱歉。 – Chris