3

我在简单的 ng-repeat 中使用 $index 来显示项目的编号:

 <li ng-repeat="item in dataList | limitTo:5">
      <span>{{ $index + 1 }} </span>
 </li>

很长一段时间都可以正常工作。

但是几天前突然我开始得到:

Error: Error while interpolating: {{ $index + 1 }} illegal access
at Error (native)
at Object.k (/vendors/angular/angular.min.js:55:287)
at Object.e.$digest (/vendors/angular/angular.min.js:90:233)
at Object.e.$apply (/vendors/angular/angular.min.js:92:431)
at Object.<anonymous> (/js/controllers/HomePage.js:99:28)
at l (/vendors/jquery/jquery.min.js:4:24797)
at Object.c.fireWith [as resolveWith] (/vendors/jquery/jquery.min.js:4:25618)
at k (/vendors/jquery/jquery.min.js:6:5201)
at XMLHttpRequest.<anonymous> (/vendors/jquery/jquery.min.js:6:9005) 

在生产环境和本地环境中。

输入的数据dataList是正确的,并且与之前的所有数据相同。

它只能在最新的 Chrome (32.0.1700.14) 中重现,在其他浏览器中仍然可以正常工作。

任何想法为什么会发生这种情况以及如何解决?

角度版本:1.1.5。

4

2 回答 2

1

由于该错误与字符串 + 数字连接有关,因此我在数字上使用 toString() 作为临时解决方法。

{{($index + 1).toString()}}

在我的情况下工作。

于 2013-11-15T13:35:58.557 回答
1

调试显示在原生添加操作中从 angular.js:6371 抛出异常,这与 AngularJS 本身无关。

对于那些遇到同样问题的人来说,似乎唯一的解决方案是找到任何替代方法来实现它失败的任务。至少要等到下一次 Google Chrome 更新。

感谢@Heikki 指出铬问题跟踪器

于 2013-11-15T08:47:02.403 回答