我需要渲染一个表,允许用户编辑每行的某些字段,这些字段将影响同一行中的其他字段。
由于这个原因,我无法对我正在呈现的所有数据使用bind-once。
如果我做对了,只需使用如下代码
<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}})被关注的变化。
如果这是真的(因此这就是加载数百行时页面速度慢的原因)我怎么能告诉角度我只想检查特定行内部是否有变化,特定的ng-repeat迭代?
不确定如何获得良好的表现,任何其他提示都表示赞赏。
答案 0 :(得分:0)
尝试使用追踪来告知角度应该评估的内容:
<tr ng-repeat="a in alist track by $index">
或
<tr ng-repeat="a in alist track by a.id">
更多关于 ng-repeat documentation
的内容