因此,我正在使用AngularJS進行項目工作,我需要能夠將範圍中的對象的值與先前記錄的值進行比較。我通過一個算法,如下面的一個這樣做:角度無意綁定/對象鏡像
function() {
var data = [
{ id: 1, key: 'value', foo: 'bar'},
{ id: 2, key: 'value', foo: 'bar'}
]
$scope.oldTarget = data[0];
$scope.target = data[0];
}
現在,如果我做的事:
function() {
$scope.target.foo = 'fighters';
if ($scope.target != $scope.oldTarget) console.log('Target was modified');
console.log($scope.target);
console.log($scope.oldTarget);
}
這將輸出:
{ id: 1, key: 'value', foo: 'fighters'}
{ id: 1, key: 'value', foo: 'fighters'}
我的假設是, AngularJS自動綁定兩個變量target和oldTarget,並鏡像對oldTarget進行的所有更改。這是否是這種情況,如果是這樣,我是否有防止這種情況?如果不是,我在做什麼導致它做到這一點?
因此,你可以嘗試使用angular.copy(數據)來防止這種情況。 – Rasalom 2014-11-25 14:16:27