AngularJS のアイテムのリストをランダムに並べるにはどうすればよいでしょうか? 組み込みのorderBy
フィルターが機能すると考えていましたが、モデルにデータを追加しないとどうなるかわかりません。のようなものは素晴らしいでしょう。
item in items | orderBy:random
私の次の考えは、カスタム フィルターを作成することでしたが、より良いものが既に利用可能な場合は、それを避けたいと思います。
クイックフィドルsh0berメソッドを実行するとうまくいくようです: http://jsfiddle.net/owenmead/fa4v8/1/
<div ng-controller="MyCtrl">
<p ng-repeat="i in list|orderBy:random">{{i}}</p>
</div>
function MyCtrl($scope) {
$scope.list = ['a', 'b', 'c', 'd', 'e', 'f', 'g'];
$scope.random = function() {
return 0.5 - Math.random();
}
}
Angular の orderBy は、リストのコピーに対して JavaScript の sort() を使用します。別の回答を見ると、特定のブラウザはその種類が安定しており、他のブラウザはそうではありません。おそらく、いくつかのブラウザーでフィドルをテストするだけで、うまくいくはず です。
PS。担当者が50人いないため、sh0berの回答にコメントできませんでした