我在使用 ng-repeat 时遇到了一些性能问题,并且 1000+<tr>
一些谷歌搜索告诉我,我必须推出自己的指令来克服 $digest 循环。我不明白我该怎么办?有人可以解释一下,我该如何提高性能。我必须显示所有 1000 多行这是要求,现在创建整个表需要将近 20 秒。
非常感谢。
<tr ng-repeat="obj in objs" id="obj{{obj.id}}" ng-show="displayObj(obj)">
<td>{{obj.objId}}</td>
<td style="min-width: 70px;">
<textarea rows="3" style="width: 100px" name="text" maxlength="100" ng-model="obj.text"></textarea>
</td>
<td><button class="btn btn-primary" ng-click="saveObj($event, obj)">Update</button></td>
</tr>
在控制器中
$scope.saveObj = function ($event, obj) {
console.log(deal);
var UpdateObj = ObjService.updateObj();
var updateObj = new UpdateObj();
updateObj.text = obj.text;
updateObj.$update({objId: obj.id});
};
现在我意识到性能问题来自 $apply 我有大约 3000 个元素。如果我关闭 ng-model,性能会更好。但我会失去双向数据绑定。无论如何我可以在这里调整性能吗?