テストケース: http://plnkr.co/edit/dsG3gxFomAK8Q15Xfouj?p=preview
上記のテスト ケースは、ng-repeat
ディレクティブで 2 回レンダリングされたデータのリストです。1回は使用せずng-include
、1回は使用しng-include
ます。
CSS トランジションは、ディレクティブでサポートされている 3 つすべて ( enter、leave、およびmove ) のアニメーションに対してセットアップされます。を使用しないng-repeat
場合、 3 つのアニメーションはすべて正常に動作しますが、 を使用してリスト内の各項目のテンプレートをロードする場合は、 Enterアニメーションのみが動作します。ng-include
ng-include
これはバグだと確信していますが、よくわかりangular-animate
ません。ng-repeat
とng-include
組み合わせて使用するときに何か間違ったことをしている可能性があります。angular-animate
ソースコードを掘り下げて問題を修正しようとしましたが、できませんでした。私が(できれば本当に)考えたのは、ng-include
ディレクティブがレンダリングされたすべてのアイテムのすぐ上にコメントノードを追加し、このノードがの働きng-repeat
を捨てているということだけです。angular-animate
これは、2 つの実装の唯一の顕著な違いでもあります。
また、アニメーションが設定されていない場合でも、すべての機能が正常に動作することに注意してください。しかし、 を使用した例ng-include
では、(アイテムを上下に移動するための) アニメーションがおかしくなるだけでなく、アイテムも移動しません。
これはバグですか?もしそうなら、既知の回避策はありますか? github で angular.js の問題を検索してみましたが、回避策が見つかりませんでした (見つけたものは機能しません)。これについて助けてくれてありがとう。