来自js的Knockout.js映射和模板使用
主要的概念如下-我们有主状态对象,它包含多个部分,每个部分都有自己的数据和类型。我想根据截面类型显示每个截面数据。主要对象如下所示:来自js的Knockout.js映射和模板使用,knockout.js,knockout-mapping-plugin,Knockout.js,Knockout Mapping Plugin,主要的概念如下-我们有主状态对象,它包含多个部分,每个部分都有自己的数据和类型。我想根据截面类型显示每个截面数据。主要对象如下所示: var data = { state: { sections: [{ section: { Id: "1", Type: "Text", Version: 2, Data: ["one", "two"] } }, { section: {
var data = {
state: {
sections: [{
section: {
Id: "1",
Type: "Text",
Version: 2,
Data: ["one", "two"]
}
}, {
section: {
Id: "2",
Type: "Text",
Version: 1,
Data: ["one", "two"]
}
}]
}
};
我正试图为每种节类型使用敲除映射和模板来实现这一点,但我真的不知道如何做到这一点。我只有这个-。有什么建议吗 您可以通过提供一个方法动态选择模板名称,该方法获取
foreach
循环的当前项并返回模板名称字符串。()
下面是代码中“模板提供程序方法”的示例:
更新的数据绑定:
<ul data-bind="template: { name: getTemplateForSection, foreach: sections, as: 'obj' }"></ul>
我已经把你的提琴叉好了,把我提议的例子也放进去了
function StateModel(data) {
ko.mapping.fromJS(data, mapping, this);
this.getTemplateForSection = function(sectionModel) {
var section = sectionModel.section;
switch (section.Type()) {
case "Text":
return "Text-template";
default:
return "Error-template";
}
}
};