次のように ng-repeat を設定しています。
ng-repeat="article in main[main.mode].primary | orderBy: main[main.mode].primary.filter.order
track by article.url"
main[main.mode].primary
は配列で、…<code>.filter.order は文字列です。
このブログ記事によると
バックグラウンドで ngRepeat は各タスクに $$hashKey プロパティを追加して追跡します。元のタスクをサーバーからの新しいタスク オブジェクトに置き換えると、それらが実際には元のタスクと完全に同一であっても、それらは $$hashKey プロパティを持たないため、ngRepeat はそれらが同じ要素を表していることを認識しません。
リストの再生成は非常に一般的なタスクであり、アプリが 1 秒以上ハングしているため、追跡することに関心があります。私が見た多くの質問とドキュメントによると、配列の順序付けと追跡の両方に正しい構文を使用しました。ドキュメントから:
アイテム中のアイテム | filter:searchText track by item.id は、追跡式と組み合わせてアイテムにフィルターを適用するために使用できるパターンです。
トラックが実装されていないのはなぜですか?私はAngular 1.3.11を実行しています。
編集 orderBy 引数を削除しても機能しません
ng-repeat="article in main[main.mode].primary track by article.url"