达到10个摘要迭代,中止(范围函数问题)

时间:2013-10-16 14:29:14

标签: javascript templates angularjs abort digest

我有一些数据以非常奇怪的形式返回(一个字符串代表一个单选按钮组的所有选项/标签)。

示例:

"yes|Yes no|No"

因此,我必须将其转换为一对配对对象。我使用我的控制器上的一个函数执行此操作,该函数迭代在换行符上拆分的数据,然后对于该数组中的每个项,它创建一个带有值和label属性的obj,然后将其推送到数组中。在函数结束时,返回最后一个数组。结果看起来像

[{value:"yes", label:"Yes"},{value:"no"|label:"No"}]

我的标记如下所示:

<div ng-repeat="item in function(dataObj)"></div> 

我知道发生了这个错误,因为angular要求同一个对象返回两次,因为其他主题有类似的问题。但是,我没有看到如何解决这个问题。

截至目前,该功能实际上工作正常,但我不想留下错误..

1 个答案:

答案 0 :(得分:3)

每个摘要周期都会不断评估Ng-repeats - 这意味着您的功能将被反复调用。您正在每个周期创建一个新对象,这会导致角度不断重新评估,从而导致您解释的问题(full explanation here)。理想情况下,您应始终对静态数据调用ng-repeat:

$scope.data = function(dataObj);

将您的标记设置为:

<div ng-repeat="item in data"></div>