达到 10 次 $digest() 迭代.ng 类?



我在ng-repeat的元素中使用ng-class函数。我收到此错误。我正在尝试从数组中选择一个随机类。我该如何解决这个问题?

<div class="col-lg-4" ng-repeat="client in allClients">
<div class="someClass" ng-class="getClass()">
//some data
{{client.name}}
</div>
</div>

这是我的JS代码。

$scope.getClass = function() {
var classArray = ['infobox1', 'infobox2', 'infobox3', 'infobox4', 'infobox5', 'infobox6'];
return classArray[Math.floor(Math.random() * classArray.length)];
}

错误还在继续。 观察者在过去 5 次迭代中触发: [[{"msg":"getBackgroundClass()","newVal":"infobox4","oldVal":"infobox6"},{"msg":"getBackgroundClass()","newVal":"infobox4","oldVal":"infobox5"},{"msg":"getBackgroundClass()","newVal":"infobox1","oldVal":"infobox4"},{"msg":"getBackgroundClass()","newVal":"infobox5","oldVal":"infobox1"},{"msg":"getBackgroundClass()","newVal":"infobox1","oldVal":"infobox4"},{"msg":"getBackgroundClass()","newVal":"infobox6","oldVal":"infobox4"},{"msg":"getBackgroundClass()","newVal":"infobox1","oldVal":"infobox5"},{"msg":"getBackgroundClass()","newVal":"infobox1","oldVal":"infobox2"},{"msg":"getBackgroundClass()","newVal":"infobox1","oldVal":"infobox4"}],[{"msg":"getBackgroundClass()","newVal":"infobox6","oldVal":"infobox4"},{"msg":"getBackgroundClass()","newVal":"infobox1","oldVal":"infobox4"},{"msg":"getBackgroundClass()","newVal":"infobox4","oldVal":"infobox1"},{"msg":"getBackgroundClass

()","newVal":"infobox5","oldVal":"infobox1"},{"msg":"getBackgroundClass()","newVal":"infobox4","oldVal":"infobox5"},{"msg":"getBackgroundClass()","newVal":"infobox2","oldVal":"infobox6"},{"msg":"getBackgroundClass()","newVal":"infobox6","oldVal":"infobox1"},{"msg":"getBackgroundClass()","newVal":"infobox6","oldVal":"infobox1"},{"msg":"getBackgroundClass()","newVal":"infobox4","oldVal":"infobox1"

你想多久选择一个随机类?目前,您已经创建了一个无限循环,因为 angular 不断注意到类发生了变化

,运行摘要循环以注意其他更改,发现类再次更改,运行摘要循环以注意其他更改,发现类再次更改,等等......你想选择一次随机值,并坚持一段时间:

$scope.randomClass = classArray[Math.floor(Math.random() * classArray.length)]

(随意执行上述代码,只要你想看到一个新值)

这是工作示例 http://plnkr.co/edit/pl3W5uNofz123EJZnMT8

当我在allClient中拥有包含所有值的数组时,我创建了一个类数组,然后使用该数组来分配类

$scope.allClients = [{name: 'client'}, {name: 'client2'}, {name: 'client3'}];
var classes = $scope.allClients.map(function(client) {
var classArray = ['infobox1', 'infobox2', 'infobox3', 'infobox4', 'infobox5', 'infobox6'];
return classArray[Math.floor(Math.random() * classArray.length)];
});

最新更新