我需要呈现一个表,在该表中,允许用户编辑每一行的某些字段,这些字段会影响同一行中的其他字段。
因此,我无法对要渲染的所有数据使用一次绑定。
如果我做对了,只需使用如下代码
<table class="table table-bordered table-condensed table-hover">
<thead>
<tr class="info">
<th>Header</th>
<th>Header</th>
<th>Header</th>
<th>Header</th>
</tr>
</thead>
<tbody>
<tr ng-repeat="a in alist">
<td>{{::a.id}}</td>
<td>{{::a.cod}}</td>
<td>
<input
ng-model="a.sel"
type="checkbox"
class="input-sm"></input>
</td>
<td ng-if="a.sel">
{{::a.desc}}
</td>
<td ng-if="!a.sel">
"Other Content"
</td>
</tr>
</tbody>
会导致每次用户选中或取消选中a.sel复选框时,都会监视页面中所有有角度的{{vars}}(而不是{{:: vars}})的更改。
如果这是真的(因此这就是为什么加载数百行时页面变慢的原因),我怎么能告诉angular我只希望它检查特定行,特定ng-repeat迭代中是否发生了更改?
不确定如何继续获得良好的性能,任何其他技巧都值得赞赏。
尝试使用track by告诉angular应该对其进行评估:
<tr ng-repeat="a in alist track by $index">
或者
<tr ng-repeat="a in alist track by a.id">
有关更多信息,请参见ng-repeat 文档
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句