2013-05-15 3 views
1

나는 마스터 모델로, 자신의 모델이 될 것입니다 - 그것을 각 양식을 10 개 개의 서로 다른 형태의 대형 페이지를 짓고 있어요 통해로드 모델 후 구성 바인딩에 그들 모두를 잡아 당겨Knockout.js - 아약스

첫째. : pageViewModel.js를 :: 참조

var masterPageModel = new PageViewModel(); 
ko.applyBindings(masterPageModel); 

과 같이 selectedCoverage.js (및 기타) 참조
// section-specific models 
this.selectedCoverage = new SelectedCoverage(); 
// continue with other sub-models... 

:

this.tier_chosen = ko.observable("Individual + Family"); 
this.subscriber_dob = ko.observable('January 15, 1970'); 
this.subscriber_age = ko.observable(43); 

이제 해당 모델에서 데이터를 미리 채울 필요가 있음을 알았습니다. 의도 한대로

ko.mapping.fromJS(data, {}, this); 

그러나, 내 양식이 더 이상 작동합니다 같은

var self = this; 
$.getJSON("./load.php",{},function(data){ 
    self.selectedCoverage = new SelectedCoverage(data); 
}); 

지금, selectedCoverage.js는 보지 않는다 : 그래서, 나는이 길을 시작했다. 구체적으로, "with : [model]"은 더 이상 관련 모델을 보지 않습니다. 그것은 이전과 같은

<div data-bind="with: selectedCoverage" > 

페이지

더 이상이 모델을 볼 수 없습니다, 따라서 전체 섹션은 숨겨져 있습니다.

$ root를 통해 참조하려고했으나 여전히 운이 없었습니다.

<div data-bind="with: $root.selectedCoverage" > 

applyBindings가 아약스 획득 모델의 위치를 ​​어떻게 알 수 있습니까?

감사합니다.


나는 그 초기 값이 관찰 만들려고 않았다 업데이트,하지만 기쁨 : 당신은 나머지 코드를 제공하지 않은, 주로 어떻게 당신이 당신의보기를 바인딩 할 때

// *** section-specific models 
self.selectedCoverage = ko.observable(); 
$.getJSON("./load.php",{},function(data){ 
    self.selectedCoverage = new SelectedCoverage(data); 
}); 

답변

1

모델 DOM을,하지만 그것은 아마도 selectedCoverage (및도 contactInformation) 관찰 할 개체를 수 있기 때문에있을 것 같아요. 당신이해야 할 일은 아마 이것 일 것입니다 :

self.selectedCoverage = ko.observable(); 
self.contactInformation = ko.observable(); 

$.getJSON("./load.php",{},function(data){ 
    self.selectedCoverage(new SelectedCoverage(data)); 
    self.contactInformation(new ContactInformation(data)); 
}); 
+0

음 .. 아직도 그것을하지 않았습니다. 위의 예제를 업데이트했습니다 .... – Scott

+0

self.selectedCoverage = new SelectedCoverage (data) but self.selectedCoverage (new SelectedCoverage (data)); – Jalayn

+0

Doh! 미안하지만, 나는 그것을 놓쳤다. 고마워, 잘 작동 해. – Scott