2017-08-31 60 views
0

我有一個關於$ scope值的問題。瞭解AngularJS中的示波器值

實施例:

$scope.editItem = $scope.data.item; 

所以在$scope.editItem我具有相同的值作爲$scope.data.item

但是,如果我修改$scope.editItem中的值,則值在$scope.data.item中也發生變化。

我在網格中創建一個版本表單,並且我想編輯項目而不更改原始值。

所以,如果用戶開始編輯行,並取消,那麼我需要找回我的$scope.editITem對象中的原始數據。

回答

1

它的發生,因爲你是$scope.data.item分配基準。因爲兩個範圍變量的引用/地址相同,所以無論何時更新$scope.editItem。 (雙向綁定概念)

因此,您只需將$scope.data.item的副本分配給$scope.editItem即可。那麼你的問題將被修復。

待辦事項如下:

$scope.editItem = angular.copy($scope.data.item) 

欲瞭解更多請閱讀,https://docs.angularjs.org/api/ng/function/angular.copy

+0

很高興能幫助!謝謝... – anu

3

發生這種情況是因爲您正在分配對$scope.data.item的引用,而不是複製該值。

爲了達到你想要什麼,你需要深拷貝使用對象

$scope.editItem = angular.copy($scope.data.item)

2

只要我明白你只想值從一個變量複製到另一個,而不是參考。一個虛擬的方式,我知道實現這個目標是使用angular.copydoc),這樣就可以得到這個

$scope.editItem = angular.copy($scope.data.item)