AngularJSを使用してシャッフルされたリストを表示したいのですが、最初の2、3の要素のみです。現時点では、このフィドルで示されているように、HTMLテンプレートでシャッフルと制限の両方を実行しています。
<li ng-repeat="value in array | shuffle | limitTo:1">
{{value}}
</li>
$digest
これは正常に機能しますが、例のように、リストに表示されているよりも多くのアイテムがある場合、Angularは10回の反復を超えます。私が知る限り、何が起こっているのかというと、何かがリストのフィルタリングされた制限された値を監視しているということです。これは、すべての要素が常に表示されるとは限らない場合に変更される可能性が非常に高くなります。
Angularを壊さずにこの効果を達成するにはどうすればよいですか?もちろん、それでも正常に機能しますが、非効率的であり、おそらく私が行っていることが正しくなく、他の方法で達成する必要があることを示しています。
明らかな解決策は、リストが表示される前にコントローラーでリストをシャッフルすることです。ただし、ユーザーがビューを更新するたびに、表示される要素の選択を変更する必要があります。
編集:これが私が達成しようとしていることのより良い例です-アプリは今、あなたが毎回シャッフルされ制限される2つのリストを切り替えることができるようになりました。