2013-08-08 2 views
0

가 나는 테이블 의 배열을 표시 한 결합의 foreach와녹아웃 동적 이제 동적 를 표의 첫 번째 행 chane 할

var viewModel={ 
     people : ko.observableArray([ 
      { name: 'Bert' }, 
      { name: 'Charles' }, 
      { name: 'Denise' } 
     ])}; 
ko.applyBindings(viewModel); 

같은 녹아웃 관찰 배열을 관찰 어레이 객체를 대체 배열 인덱스를 사용하여 tryed (viewModel.people.name[0]("new value"); 작동하지 않습니다

아이디어가 있습니까?

답변

0

observableArray는 실제로 추가 자바 스크립트 배열이 아닌 추가 배열과 유사한 기능을 가진 관찰 가능 객체입니다. 그래서 배열에 도착 당신은 관찰 먼저 해결해야

viewModel.people()[0].name = "new value"; 

편집

당신이 원하는 경우

배열에있는 개체 중 하나의 .name을 특성의 변화가 트리거 있음 페이지 수정, 속성도 관찰 할 필요가있을 것입니다. 이런 예시 :

var viewModel={ 
    people : ko.observableArray([ 
     { name: ko.observable('Bert') }, 
     { name: ko.observable('Charles') }, 
     { name: ko.observable('Denise') } 
    ])}; 

// Update: 
viewModel.people()[0].name("new value"); 
+0

내가 그것의 값을 변경하지 시도 viewModel.people()는 i가 경고 – Bhaskar

+0

사용될 때 [0] .name과이 값을주고 그 기능 예상 에러가 나를 위해 작동 – Bhaskar

+1

을 준다 : http://jsfiddle.net/dUULM/4/ [observableArray] (http://knockoutjs.com/documentation/observableArrays.html)에 객체를 넣는 것만으로는 그 객체의 속성 자체가 관찰 가능하다. 물론 원한다면 이러한 속성을 관찰 가능하게 만들 수 있지만, 이는 독립적 인 선택입니다. observableArray는 보유하고있는 객체를 추적하고 객체가 추가되거나 제거 될 때 리스너에 알립니다. –