我有一个页面,其中包含订阅者、他们的配偶和 N 名家属的信息。
对于每个人,我们都在询问他们的姓名、出生日期、地址等。基本上,它是一遍又一遍的相同字段。我可以为订阅者和配偶创建一个模型。我将永远有一个订阅者,我不担心在我的模型中创建一个空的配偶节点,但对于孩子们,我不确定如何继续......
我的页面是一个非常长的页面,其中有很多部分将被隐藏,直到需要处理该部分 - 就像一个向导。
我当前页面中的每个部分都以外部 div 开头:
<div data-bind="with: submodelName"> // i.e. subscriberInfo, spouseInfo
我只是不知道如何处理 N 个孩子。
我可以将整个 <div><form></form><div> 部分填充到 <script> 标记中并使其成为模板,但是如何将不同的模型绑定到每个项目?即我如何模拟“with:”部分?
我当前的模型设置是我有一个大型包装模型,我在其中创建了许多子模型(每个子模型 4 + 一个)并调用单个 applyBindings():
var masterPageModel = new PageViewModel(); // pulls in several other modules
// ... pageViewModel.js contents::
// *** section-specific models
self.selectedCoverage = ko.observable();
self.contactInformation = ko.observable();
self.subscriberInformation = ko.observable();
self.spouseInformation = ko.observable();
self.dependentInformation = ko.observableArray(); // how will this work? array?
$.getJSON("./load.php",{},function(modelPackage){
// **** meta properties
self.modelList(modelPackage.modelList);
self.currentModel(modelPackage.currentModel);
// models
self.selectedCoverage(new SelectedCoverage(modelPackage.models["selectedCoverage"]));
self.contactInformation(new ContactInformation(modelPackage.models["contactInformation"]));
self.subscriberInformation(new SubscriberInformation(modelPackage.models["subscriberInformation"]));
self.dependentInformation(new DependentInformation(modelPackage.models["dependentInformation"])); // this isn't working
// dependentInformation is an array of people and information....
});
//... back to first file:
ko.applyBindings(masterPageModel);
谢谢。任何帮助将不胜感激。