2013-09-05 54 views
2

我有一個很奇怪的問題。

我使用angular.foreach循環,但有一個問題下的$範圍的對象。

當我試圖根據langKey(其中langKey是'en'或'el')設置一個值時,所有值都將通過填入langKey進行更新。

$scope.finalObject[langKey]['servicesElements'][itemKey]['name'] = something; 

問題仍然存在,當我簡單地使用控制檯爲了改變那裏的值。

我的價值「myCustomText」設置對象的EL版本

$scope.finalObject.el['servicesElements'][itemKey]['name'] = 'myCustomText' 

但是,如果我運行此一個

$scope.finalObject.en['servicesElements'][itemKey]['name'] 

返回「myCustomText」,沒有理由因爲什麼我改變了el版本不是en。

這是正常的嗎?我完全陷入

預先感謝您

+1

莫非你創建一個Plunker腳本或什麼? –

+0

我建議您查看http://ngmodules.org/modules/angular-translate上的angular-translate模塊。此外,您需要爲特定問題發佈更多代碼,這聽起來像是您的循環出現問題。 –

回答

1

好球員,

的問題是,我曾宣佈具有相同源的兩個不同的對象。

$scope.finalObject.el.servicesElements = something; 

$scope.finalObject.en.servicesElements = something 

我以前是沒有看到,但瀏覽器被表現得就像我已經輸入

$scope.finalObject.en.servicesElements = $scope.finalObject.el.servicesElements = something 

,並在一個另一個是每一個變化以下。

(在PHP中被稱爲指針)

的解決方案是使用角度的複製功能

http://docs.angularjs.org/api/angular.copy

所以我只是用這個蘇答案Reset a model with angular.js這樣做

$scope.tmpVar = something; 
$scope.finalObject.en.servicesElements = angular.copy($scope.tmpVar); 
$scope.finalObject.el.servicesElements = angular.copy($scope.tmpVar); 
相關問題