当我尝试通过angular.copy
将新对象复制到旧对象时,其引用会发生变化。如果我使用=
或JSON.parse(JSON.stringify(newObj))
,则视图不会使用新值进行更新。
我该如何解决这个问题?
代码示例:
$scope.value = newValue.ref;
此实例中未更新视图。
$scope.value = angular.copy(newValue.ref);
视图已更新,但引用已更改。
答案 0 :(得分:1)
要保留引用,请使用angular.copy的两个参数形式:
//$scope.value = angular.copy(newValue.ref);
//USE two argument signature
angular.copy(newValue.ref, $scope.value);
这样就可以保留原始引用。
用法
angular.copy(source, [destination]);
创建
source
的深层副本,该副本应该是对象或数组。
- 如果提供了目标,则会删除其所有元素(对于数组)或属性(对象),然后将源中的所有元素/属性复制到该目标。