2012-10-22 5 views
2

여러 입력 필드를 사용하여 ajax 호출에서 반환 된 개체를 변경할 수 있어야합니다. 두 개체의 연결을 어떻게 막을 수 있는지 잘 모르겠습니다.angularjs를 사용하여 두 데이터를 어떻게 개별적으로 바인딩합니까?

$scope.items = [{value: 1},{value: 2},{value: 3}]; 
$scope.itemEdit1 = $scope.items; 
$scope.itemEdit2 = $scope.items; 

각기 다른 범위에서 편집해야합니까? 여기 내 문제를 설명하는 바이올린입니다 : http://jsfiddle.net/htTQc/

답변

14

어쩌면 당신은 같은 참조를 편집하지 않는 개체를 복사하려는 것 같습니다? angular.copy을 사용하십시오.

$scope.items = [{value: 1},{value: 2},{value: 3}]; 
$scope.itemEdit1 = angular.copy($scope.items); 
$scope.itemEdit2 = angular.copy($scope.items); 
Docs here.
+0

는 AngularJS와를 몰랐

가 할당에 얕은 복사본을 생성 http://jsfiddle.net/blesh/htTQc/1/

. 이 기능인가요? 아니면 닫힌 상태에서 각도 처리 객체를 사용했기 때문입니까? – rcell

+0

이것은 Angular와는별로 관련이 없습니다. 왜냐하면'$ scope.items','$ scope.itemEdit1'과'$ scope.itemEdit2'는 모두 같은 배열에 대한 참조이기 때문입니다. 하나의 배열을 만든 다음 동일한 것을 참조하는 두 개의 변수를 만듭니다. '$ scope.itemEdit1 === $ scope.itemEdit2'는 OP의 코드에서'true'를 반환합니다. –

관련 문제