我有一个循环通过$scope.myarray
的ng-repeat。
我有以下功能:
var copy = $scope.myarray;
$.each(copy, function(index, data){
data.name = "";
});
当我执行此操作时,它似乎影响ng-repeat
上的$scope.myarray
循环。
当我这样做时:
console.log(copy);
console.log($scope.myarray);
他们似乎都有$$hashKey
所以我认为这就是搞砸了。
在不影响第一个版本的情况下操作数组副本的最佳方法是什么?
答案 0 :(得分:1)
复制你应该使用
var copy = angular.copy($scope.myarray);
答案 1 :(得分:0)
通过这样做:
var copy = $scope.myarray;
您没有创建$ scope.myarray的副本,但您只是将$ scope.myarray的引用分配给新变量。
这样做:
$.each(copy, function(index, data){
data.name = "";
});
与
完全相同$.each($scope.myarray, function(index, data){
data.name = "";
});
您需要将$ scope.myarray的所有项目复制到新数组(see this answer)
根据$ scope.myarray中的数据类型,您可能需要进行深层复制/克隆