我的数据如下:
public void FirstRegister() {
content.FirstRegister(); //<-- content
}
我在这里有问题:
两者都有相同的对象数组。
当我从$scope.form= response.data.shooter;
oldData= response.data.shooter;
删除任何值时,它也会从oldData
中删除。
代码如下:
$scope.form
我已经搜过这个,但没有运气。
任何人都可以告诉我,如何创建范围的副本来单独处理它,而不管两个数组对象之间的同步,即独立的范围副本,以便如果我在该副本中进行更改不应影响范围?
答案 0 :(得分:1)
$scope.form= response.data.shooter;
oldData= angular.copy(response.data.shooter);
答案 1 :(得分:1)
是的,您可以使用angular.copy
。将对象复制到其他对象。
angular.copy(来源,[目的地]);
oldData = angular.copy($scope.form);
angular.copy($scope.leader, oldData);
你可以使用
https://docs.angularjs.org/api/ng/function/angular.copy
您也可以查看lodash and underscore
这个库提供了很好的方法。
答案 2 :(得分:0)
那么@Charlietfl是正确的我只想对问题和解决方案添加一些解释
使用=
,您实际上已将response.data.shooter
的引用分配给$scope.form
和oldData
,并且引用是相同的updating
会影响其他(与shallowCopy
中的C++
相同的概念)。为避免出现这类问题,您需要制作deep copies
个对象,并且在角度为angular.copy()