2015-12-02 53 views
0

這是一個很奇怪的問題,我有一個窗體創建一個新對象,然後將其推送到一個數組。但是,新項目正在改變之前的項目。將範圍窗體推到數組中更改數組的其他成員

var newHeli = $scope.hlz.form; 
    $scope.helicopters.push(newHeli); 
    $scope.selectedHelicopters.push(newHeli) 

將增加一架新的直升機,但它改變了以前的直升機的價值。該名稱甚至在提交之前進行更新。

<button class="helicopter" ng-click="removeHelicopter($index)" 
ng-repeat="helicopters in selectedHelicopters track by $index"> 
    {{helicopters.size}} 
</button> 

是如何顯示和

<input type="text" ng-model="hlz.form.size"/> 

是怎樣的模式是新條目更新。那麼,該陣列應該有這樣的條目:

[{size: 'test 1'}, {size: 'test 2'}, {size: 'test 3'}]

它具有:

[{size: 'test 3'}, {size: 'test 3'}, {size: 'test 3'}] 

任何線索如何解決這個問題?

+0

,你需要創建一個新的空白對象採取下一個。 –

+0

我認爲我是通過重新初始化var來做到這一點的。 –

+0

我正在尋找一行代碼,如$ scope.hlz.form = {};並沒有看到它。或者,您可以使用Avi的建議並使用angular.extend()創建對象的副本。 –

回答

0

您正在推動一個參考對象,一旦你推直升機到數組,這不是一個深克隆

+0

這是正確的。爲了記錄,我將我的代碼更改爲var newHeli = angular.copy($ scope.hlz.form);並修復它 –