2014-02-09 3 views
2

나는 지시어가있다. 여기에 문제 없습니다. 하나의 값을 편집합니다. 그러나 업데이트를 클릭하면 $ scope.entries가 변경되지 않았 음을 내 처리기에서 볼 수 있습니다.NG 반복 디스플레이 모델 그러나 그것을 업데이트되지는

왜?

나는이 문제를 해결할 수 있어요 : - 서버가 { '빨간색'200, '블루': (100)}는 dictionnay 반환하기보다는 대신 내가 배열 [{ '키를'반환 '빨간색', ' val ': 200}, {'key ': 파랑,'val ': 100}].

<li ng-repeat="item in entries"> 
    {{item.key}} has {{item.val}} 
    <input type="text" ng-model="item.val"></input> 
</li> 

잘 작동 :

은 내가 지시어를 변경하는 경우. 그러나 배열이없는 방법이 있습니까? Seams Angular는 ng-repeat를 사용하여 dictionary를 표시 할 수 있지만 두 방법으로 모두 데이터 바인딩을 수행 할 수는 없습니다.

+0

jsfiddler하십시오 –

답변

3

배열 방법이 올바른 방법 일 것 같습니다. here을 참조하십시오. ng-repeat가 반복 요소의 각 인스턴스에 대한 자식 범위를 생성하기 때문에 사용

<li ng-repeat="(k,v) in entries"> 
     {{k}} is {{v}} 
     <input type="text" ng-model="$parent.entries[k]"></input> 
    </li> 

$parent :

당신이 원래 객체를 통해 반복 주장하는 경우처럼 뭔가에 HTML을 변경할 수 있습니다. 당신이 항목을 참조하기 위해 이런 일을 할 필요가 있으므로 반복되는 각 요소는 그것의 자신의 범위를 점점

1

오브젝트 :

<input type="text" ng-model="entries[k]"></input>