2014-10-29 119 views
-1

我有一個全局變量,我在點擊時給全局變量分配一個JSON。但是,即使我沒有點擊,全局變量也正在更新。AngularJS更新變量

$scope.save = function() { // method called on click 
    DataBasket.users = $scope.usersPermissions; // Actually DataBasket is a factory, updating global variable 
} 

我也操縱的$scope.usersPermissions其他點擊的價值。但我不希望它被更新爲全局變量。

我該如何解決這個問題?

+0

用這麼少的信息很難理解這個問題,請添加更多的細節,如果可能的話創建一​​個plunk。 – Rabi 2014-10-29 04:35:27

+1

@Rabi在閱讀了5次之後,我得出結論:OP想要的是在變量中有一個對象的副本,而不是讓對象本身在那裏。但我同意,我還不確定這是否是OP所要的。 – Josep 2014-10-29 04:39:32

+0

@Josep Ur的結論是正確的。這就是我想要的。 – 2014-10-29 05:48:25

回答

1

我認爲你想要的是DataBasket.users$scope.usersPermissions的副本。試着這樣做:

$scope.save = function() { 
    DataBasket.users = angular.copy($scope.usersPermissions); 
} 

否則DataBasket.users將引用相同的對象$scope.usersPermissions和whenenever你換一個,對方就會改變太多,因爲其實他們是相同的對象。

+0

@ErmaIsabel你將不得不分享其他代碼,否則將無法幫助你。另外,如果你可以設置一個[plunker](http://plnkr.co/)或[jsFiddle](http://jsfiddle.net/),那麼它會很好,這樣我們就可以看到並嘗試出了什麼問題用它。謝謝! – Josep 2014-10-29 05:59:08

+0

謝謝。其實烏爾代碼工作。我的錯 – 2014-10-29 08:39:40