我有两个对象。一个是主数据,另一个是类似的对象,但包含我正在使用的某些属性,并且是主数据的子集。请在下面找到两个对象:
$scope.masterData = {
"StoresForOrgs": {
"PPP0001188": ["007071","007073","007079"],
"PPP0001189": ["007075","0070756","0070789"],
"PPP0001190": ["007075","0070756","0070789", "00707893", "00707899"]
}
}
$scope.masterDataForDisplay = {
"StoresForOrgsDisplay": {
}
}
如果在我的代码中我做了
$scope.masterDataForDisplay = $scope.masterData;
这是链接两个对象,如果我更改masterDataForDisplay,它也会更改masterData。现在我明白比较这两个会创建相同的引用,这可以通过使用
来避免试试这个
$scope.masterDataForDisplay = JSON.parse(JSON.stringify($scope.masterData));
但即使代码未执行,也会发生这种情况。对象是否在之前被初始化?
答案 0 :(得分:1)
使用它:
$scope.masterDataForDisplay = angular.copy($scope.masterData);
而不是
$scope.masterDataForDisplay = $scope.masterData;
copy():创建源的深层副本,该副本应该是对象或数组。所以他们不共享相同的参考