10

AngularJS のアイテムのリストをランダムに並べるにはどうすればよいでしょうか? 組み込みのorderByフィルターが機能すると考えていましたが、モデルにデータを追加しないとどうなるかわかりません。のようなものは素晴らしいでしょう。

item in items | orderBy:random

私の次の考えは、カスタム フィルターを作成することでしたが、より良いものが既に利用可能な場合は、それを避けたいと思います。

4

2 に答える 2

6

クイックフィドル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の回答にコメントできませんでした

于 2013-06-14T17:08:17.357 に答える