2015-06-09 117 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 –