Angular.copy更改引用

时间:2017-03-09 07:04:48

标签: javascript angularjs json

当我尝试通过angular.copy将新对象复制到旧对象时,其引用会发生变化。如果我使用=JSON.parse(JSON.stringify(newObj)),则视图不会使用新值进行更新。

我该如何解决这个问题?

代码示例:

$scope.value = newValue.ref;

此实例中未更新视图。

$scope.value = angular.copy(newValue.ref);

视图已更新,但引用已更改。

1 个答案:

答案 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的深层副本,该副本应该是对象或数组。

     
      
  • 如果提供了目标,则会删除其所有元素(对于数组)或属性(对象),然后将源中的所有元素/属性复制到该目标。
  •   
     

— AngularJS angular.copy API Reference