2015-06-09 78 views
1

你好我有一个数组$ scope.name。我将数组分割成小数组。但是在分割数组之后,它变成了空白为什么? 实际上,我将给定的数组分配给临时变量,并将temp变量分开。再次,我的$ scope.name变为空白为什么?为什么阵列在拆分成多个小阵列后变为空白?

这里是我的plunker http://plnkr.co/edit/iUscrw0xclHSnsIWMMTM

console.log("before"); 
    console.log($scope.name); 
    var test=$scope.name; 
    console.log("after"); 
     console.log($scope.name); 
    console.log("test"); 
    console.log(test); 
    var arrays = [], size = 3; 

while (test.length > 0) 
    arrays.push(test.splice(0, size)); 

console.log(arrays); 
console.log("name"); 
    console.log($scope.name); 

回答

1

您直接分配对象到另一个对象,这样会导致在任何物体的变化将更新其他对象的值。 使用angular.copy而不是直接分配对象,这将创建该对象的新克隆副本将返回。

var test=angular.copy($scope.name); 

Forked Plunkr

+0

为什么了'console.logs'显示为空,即使他们while循环之前执行?只是想知道,因为这似乎很奇怪的行为。 – Fissio

+0

@Fissio看看这个与'console.log'有关的同样的问题看起来要晚打印http://stackoverflow.com/a/11284702/2435473 –