我有大量的对象,我用ng-repea
打印,在dom中无限制地随机播放,任何快速的解决方案都将受到赞赏。
以下是HMTL:
ng-repeat="_video in return_array_for_ngrepeat() | orderBy: random"
我的$rootScope
功能:
$rootScope.return_array_for_ngrepeat = function () {
return _.values(data[102]);
}
$rootScope.random = function () {
return 0.5 - Math.random();
}
答案 0 :(得分:1)
你对random()
进行了很多调用,Angular将继续评估表达式,直到它达到10次摘要迭代的极限。这是导致错误的原因。
您必须在模板外设置随机订单,例如在您的控制器中。
angular.forEach($rootScope.list, function(item) {
$rootScope.randomizedList.push({
item: item,
rank: 0.5 - $window.Math.random()
});
});
您现在可以遍历randomizedList
数组。
<p ng-repeat="i in randomizedList | orderBy:'rank'">{{i.item}</p>