2013-11-01 2 views
1

두 모델에 바인딩 된 ko 데이터가있는 두 개의 테이블이 있습니다. 두 모델을 사용하여 데이터를 바인딩 할 수 있습니다.다른 viewmodel 클릭 이벤트에서 knockout viewmodel 업데이트

내 목표 (이 경우에 patientmodel) 모델 # 1의 행을 클릭하면

, 모델 # 2가 대응하는 데이터를 갱신한다.

문제점 : 모델 1의 Click 이벤트를 트리거 할 수 없습니다. echoMe가로 patientModel에 정의되어

 <tbody data-bind="foreach: Patients"> 
      <tr data-bind="click: $root.echoMe"> 
       <td class="id"><a href="#" data-bind="text: patID"></a> 

       </td> 
       <td data-bind="text: patName"></td> 
       <td data-bind="text: patBirthDate"></td> 
       <td data-bind="text: patSex"></td> 
      </tr> 
    </tbody> 

:

self.echoMe = function() { 
    console.log("able to trigger click !"); 
}; 

jsfiddle은 나에게 오류를 제공합니다 : 데이터와 뷰 자체를 채우는 동안에도

Message: Unable to process binding "click: function(){return $root.echoMe }"

이 나옵니다. 첫 번째가 표시되고 오류가 발생합니다.

저는 jfiddle에서 녹아웃 문서와 다른 예를 보았습니다.하지만 어젯밤 이후로 이것이 왜 씨를 위해 일하지 않는지 아직 알 수 없습니다.

Jsfiddle 코드 :

는 통찰력과 도움이 매우

http://jsfiddle.net/j9HJm/7/을 감사합니다.

감사합니다.

+0

당신은'한 번 이상, 당신은 아마 제대로보기 모델을 구조화되지 않습니다()'ko.applyBindings를 호출하는 경우. – arb

+0

예, 다시 바인딩하는 대신 업데이트 모델을 수행해야한다고 생각합니다. 하지만 지금 막 발견 한 것은 jsfiddle의 동일한 코드가 녹아웃에 대한 대화식 학습 자습서 (http://learn.knockoutjs.com/#/)를 통해 완벽하게 작동 할 때입니다. 클릭 이벤트가 발생하고 모델이 업데이트되었습니다. – Aparna

+0

jsfiddle 코드를 업데이트하여 리바운드보다 뷰 모델을 새로 고칩니다. 그러나 knockoutjs.com 대화 형 tuts에서 원활한 코드 작업과 달리 여전히 클릭 이벤트는 발생하지 않습니다. – Aparna

답변

0

JSfiddle에서 jQuery (edge) 버전을 사용하고 있습니다.
jQuery (edge)은 jquery lib의 마지막 빌드이며 안정적이지 않습니다.
안정 버전을 대신 사용하십시오. 예 : 2.0.2. 안정적인 JQuery와 버전
은, 당신의 예는 다음과 같이 예상 작품 :

JSFiddle DEMO

+0

jsfiddl 데모에 대한 감사의 llya. 잘 작동합니다. – Aparna

관련 문제