更改重复的$scope数组,但会影响原来的ng-repeat

Changing duplicate $scope array but it's affecting original ng-repeat

本文关键字:影响 ng-repeat 原来 scope 数组      更新时间:2023-09-26

我有一个通过$scope.myarray循环的ng-repeat。

我有以下功能:

var copy = $scope.myarray;
$.each(copy, function(index, data){
    data.name = "";
});

当我这样做时,它似乎影响了$scope.myarray上的ng-repeat循环。

当我这样做的时候:

console.log(copy);
console.log($scope.myarray);

他们似乎都有$$hashKey,所以我想这就是把事情搞砸的原因。

在不影响第一个版本的情况下操作数组副本的最佳方法是什么?

要复制你应该使用

var copy = angular.copy($scope.myarray);

这样做:

var copy = $scope.myarray;

您没有创建$scope的副本。但你只是将引用赋值给$scope。

这样做:

$.each(copy, function(index, data){
    data.name = "";
});

完全相同
$.each($scope.myarray, function(index, data){
    data.name = "";
});

需要复制$作用域的所有项。Myarray转换成一个新的数组

取决于$scope中有什么类型的数据。Myarray,你可能需要做一个深度复制/克隆