2012-05-06 3 views
4

두 모델 : ServiceViewModel 및 ReservationsViewModel; 둘 다 learn.knockoutjs.com에있는 자습서를 기반으로합니다.페이지에서 두 모델을 사용하면 Knockout.js가 바인딩되지 않습니다.

내가 가지고있는 문제는 내 웹 페이지가로드 될 때 ServiceViewModel 만 바인딩된다는 것입니다. ReservationViewModel에 바인딩 된 컨트롤은 아무 것도 표시하지 않습니다. 나는 녹아웃에 처음이다. js 그리고 해결책을 찾았지만 아무 소용이 없다.

ServiceViewModel에 대한 바인딩을 제거 할 때 ReservationsViewModel에 바인딩하는 컨트롤이 올바르게 바인딩 (즉, 데이터 표시)되므로 여기에서 무슨 일이 일어나고 있는지 확실하지 않습니다. 그것은 knockout.js 페이지에 더 많은 하나의 viewmodel을 허용하지 않는 것처럼 보이지만 그건 어리석은 것이고 내가 그것을 추측하는 것과 같은 큰 한계는 문제가 아닙니다!

다음은 내 피들 링크입니다. http://jsfiddle.net/zsg6b/ JSFiddle에서도 바인딩이 작동하지 않습니다.

나는 다음과 같은 오류가 얻을 Visual Studio를 인터넷 익스플로러와 구글 크롬에서 프로젝트 실행

runtime error: Unable to parse bindings. Message: ReferenceError: 'seats' is undefined; Bindings value: foreach: seats

내가 잘못 무슨 짓을? 내 jsfiddle을 확인하십시오.

추신 : 이것은 내 첫 번째 stackoverflow 게시물이므로 부드럽게하십시오! :)

고맙습니다.

답변

8

페이지에 두 개 이상의 viewmodel이있는 경우 applyBindings 호출에서 각 viewmodel이 적용되는 페이지의 어느 부분을 지정해야합니다. 나는 applyBindings에서 그들을 지정 후 별도의 용기에 서비스 및 예약 섹션을 포장하여 바이올린을 고정했습니다

호출 : 내 바이올린을 고정 http://jsfiddle.net/zsg6b/1/

+0

감사합니다. 여러 모델을 가지고있을 때 html을 컨테이너 화하고 컨테이너 DOM ID를 applyBindings 메서드에 전달해야한다는 것을 알지 못했습니다. 위대한 통찰력 .cheers! 불행히도 내 Visual Studio ASP.Net MVC4 프로젝트에 솔루션을 붙여 넣을 때 작동하지 않았습니다. 내 프로젝트를 살펴보고 어디로 갈지 제안 해 주시면 고맙겠습니다. rapidshare에서 내 프로젝트를 다운로드하려면 https://rapidshare.com/files/2327517184/MvcHtml5Test.zip – elcid

+0

안녕하세요. Tuan, 마지막으로 작성한 댓글을 무시하십시오. 나는 이제 내가 가진 문제를 해결했다. 코드가 환상적으로 작동했지만 JSFiddle에서 복사 한 후 내 파일에 붙여 넣을 때 일부 잘못된 - 보이지는 않지만 - 함께 복사 된 문자가있는 것으로 나타났습니다. 이야기의 도덕은 결코 jsFiddle에서 코드를 복사/붙여 넣기하는 것이 아닙니다 !! [여기에 내가 해결책을 찾은 곳으로가는 링크입니다] (http://stackoverflow.com/questions/4404526/unexpected-token-illegal-in-webkit) 다른 누구에게나이 문제가 발생할 수 있습니다! 내 원래의 질문에 관해서는, 많은 Tuan 고마워요 솔루션으로 귀하의 답변을 표시 해요. – elcid

+0

도와 드리겠습니다. 건배. – Tuan

관련 문제