0
ng-repeat
によってビューに結びつけられたオブジェクトの配列を編集したいと思います。 完全なアレイが変更されるまでスコープの更新を避けるにはどうすればよいですか?スコープ変数を編集するときにダイジェストサイクルを回避する方法
私は、アレイ内のすべてのOBJを更新し、その後、ONLY $の範囲を更新したいと思います:ここで
は簡単な例です。配列にはオブジェクトが含まれているため、別の変数で単純にコピーすることはできません。
<div ng-click="updateAll()" ng-repeat="obj in array">obj.value</div>
angular.module("test", []).controller('Ctrl', function($scope) {
$scope.array = [{val: 1}, {val: 2}, {val: 3});
$scope.updateAll = function() {
for (var i = $scope.array.length - 1; i >= 0; i--) {
$scope.array[i].val2 = i;
};
};
});
私の配列にはオブジェクトが含まれています。私はそれを深くクローンするのが嫌いでしょう(ゲッターのようにデータが緩んでいるかもしれません...) – Sergej
なぜこの動作が必要ですか?あなたはアイテムのリストを表示し、それらを次々とアップデートする可能性を提供しますか?アイテムを保存する前に、ユーザが保存するか、何か類似したものを保存したくないのですか? – kabaehr
これは単にパフォーマンス上の問題です。 1つの更新で十分であれば、すべてのオブジェクトに対して$スコープを150回更新する必要はありません... – Sergej