私は 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});
};
パフォーマンスの問題は、約 3000 の要素がある $apply に起因することに気付きました。ng-model を外すと、パフォーマンスが向上します。しかし、双方向のデータバインディングは失われます。ここでパフォーマンスを調整できる方法はありますか?