由于 angularjs 中的 ng-repeat 导致的错误
Posted
技术标签:
【中文标题】由于 angularjs 中的 ng-repeat 导致的错误【英文标题】:error because of ng-repeat in angularjs 【发布时间】:2013-01-08 03:39:47 【问题描述】:我使用嵌套的 ng-repeat 在 html 页面中显示我的数据。
报错了
Error: Error: 10 $digest() iterations reached. Aborting!
Watchers fired in the last 5 iterations
但是这个错误不会影响我的功能。我正在寻找这个问题的答案,但我没有得到正确的答案,所以我在这里发布了这个问题。
我不知道我的 json 数据结构是否会导致此错误,但我无法更改其结构。
这是我的示例 json 数据
//In controller
for (var i = 1; i <= 31; i++)
$scope.daysofmonth.push(day:i); // daysofmonth.day->1,2,3...
for(var j=0; j<$scope.daysofmonth.length; j++)
$scope.daysofmonth[j].events = [ // creating 31 arrays for events
"name":"T", "count":0,"data":[
"startDate":"01/25/2013",
"startTime":"00:00",
"endDate":"01/26/2013",
"endTime":"00:00",
"type":"m",
"status":"Not Started",
"title":"Demo to Client",
"description":"Application demo"
],
"name":"I", "count":0,"data":[...] // same as previous
];
//left some of the business logic
//In html file
<div class="box | today:year+'-'+month+'-'+dayofmonth.day:dayofmonth.day" ng-repeat="dayofmonth in daysofmonth" >
<span class="days"> dayofmonth.day </span>
<span class="events-list">
<div ng-repeat="eve in dayofmonth.events" >
eve.count + eve.name
</div>
</span>
</div>
谁能告诉我导致此错误的原因以及如何解决?
【问题讨论】:
你能发一个 jsfiddle 吗? "data" 应该是 ["num1", "2"] 还是 "num1": "2",因为您拥有的不是有效的 javascript。您还说您使用了 4 个 ng-repeats,但只显示了两个。请发布更多代码。 查看$scope.data
结构,在嵌套的ng-repeat
中,getdata
对象并不总是具有num1
的键。不确定这是否是从发布到 SO 的翻译错误,但无论哪种方式,我们都可以使用更多代码来工作。
正如 Mark Rajcok 所指出的,您的数据数组是错误的。
@Prashanth 我们真的需要一个 jsfiddle 或 plunker,这样我们就可以查看您运行的代码并在上下文中查看错误。
【参考方案1】:
该 JSON 无效。此外,您的模板不会输出任何可见的内容,除非您在转发器中放置一些绑定标签,例如 Company.Company.id
。
【讨论】:
【参考方案2】:正如其他人已经说过的,数据是无效的。虽然它可能是有效的 JSON,但它不是有效的 javascript。我根据数据结构创建了一个 plunker 示例,并已清理为有效的 javascript,并且嵌套的 ng 重复没有任何错误。
当然,只有两个,因为这就是您在上面的代码 sn-p 中显示的全部内容。但它适用于这两个,并且应该同样适用于额外的嵌套重复。
http://plnkr.co/edit/z36YclsngdX9HozgdUkQ?p=preview
【讨论】:
【参考方案3】:这可能是因为您正在 ng-repeat 内的视图中初始化对象。因此,我遇到了类似的问题。请看这个链接
Error: 10 $digest() iterations reached. Aborting! with dynamic sortby predicate
【讨论】:
以上是关于由于 angularjs 中的 ng-repeat 导致的错误的主要内容,如果未能解决你的问题,请参考以下文章
AngularJs 使用自定义 Json 中的 ng-repeat 创建表
AngularJS中带有ng-repeat范围的指令隔离范围