2013-09-05 2 views
2

매우 이상한 문제가 있습니다.

나는 내가 angular.foreach 루프를 사용하고 있지만 문제가

은 $ 범위에서 객체를 가지고있다.

langKey (여기서 langKey는 'en'또는 'el')에 따라 값을 설정하려고 할 때 langKey를 생성하여 모든 값이 업데이트됩니다. 단순히 거기에서 값을 변경하기 위해 콘솔을 사용할 때

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

문제는 여전히 존재합니다.

나는 개체의 엘 버전 값을 'myCustomText'하고 있어요

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

하지만 실행하는 경우이 하나

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

이 반환 'myCustomText'무엇 때문에 아무 이유와 함께 나는 en 판이 아닌 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 

를 입력하고 다른이었다 하나의 모든 변화를 한처럼 행동했다 수행원.

이 솔루션은

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

그래서 나는 단순히이 SO Reset a model with angular.js이 한 대답에 사용되는 각도의 복사 기능을 사용하는 것이 었습니다

(PHP에서 호출되는 포인터)이

$scope.tmpVar = something; 
$scope.finalObject.en.servicesElements = angular.copy($scope.tmpVar); 
$scope.finalObject.el.servicesElements = angular.copy($scope.tmpVar); 
관련 문제