问题是当我点击ngRepeat中生成的按钮时,其行为是不可预测的。它可以在第一次点击或第五次响应。最稳定的行为是双击反应。
我已在this Plunker完全复制了我项目的问题部分。
在Chrome,Firefox和Edge中检查问题的结果相同。
我的猜测是由Angular生成范围引起的问题...但我对Angular很新,并且在整整一周内没有成功解决这个问题。所以,请问有人可以帮忙吗? :)
Result
答案 0 :(得分:1)
问题出在这一行:
<tr ng-repeat="student in task | groupBy: 'studentId' | toArray: true | orderBy: orderByName">
toArray: true/false
导致问题
解决方案是添加track by $index
,如:
<tr ng-repeat="student in task |
groupBy: 'studentId' |
toArray: true |
orderBy: orderByName track by $index" >
工作 Plunker
问候@Mike
回答... I believe the code is too slow.
索引跟踪应改善应用。性能,因为你添加索引而不是角度(太贵)
答案 1 :(得分:1)
与Maxim的回答一起,我认为代码太慢了。 当您绑定到函数而不是范围变量时,此函数可以比您想象的更频繁地执行。有时最好预先格式化数据,在对象上创建一个新属性,然后绑定到该对象。
我将记录语句添加到attendanceStatus,当我单击一个按钮时,似乎该函数被调用了一千次。