使用淘汰赛,我可以使用这样的模板:
<div data-bind="template: { name: 'person-template', data: buyer }"></div>
<script type="text/html" id="person-template">
<h3 data-bind="text: name"></h3>
<p>Credits: <span data-bind="text: credits"></span></p>
</script>
function MyViewModel() {
this.buyer = { name: 'Franklin', credits: 250 };
}
ko.applyBindings(new MyViewModel());
这非常有效但我正在尝试动态创建模板,具体取决于我从服务器返回的数据。
有一个article讨论了我面临的同样问题,并描述了一个基于ko.jqueryTmplTemplateEngine的解决方案。
任何人都可以帮我解决这个问题吗?
还是有另一种(更简单的)方法吗?
由于
答案 0 :(得分:3)
检查一下。如您所见,templatoUse根据项目的类型创建模板。
self.templatoUse = function (item) {
var tmplName = 'tmpl-' + item.type;
if ($('#' + tmplName).get().length == 0) {
// create template based on item type
var content = 'Template ' + tmplName + '<br/> <span data-bind="text:name"></span><br/>';
// wrap the template
content = '<div id="' + tmplName + '">' + content + '</div>';
// had it so it can be used
$('#templateContainer').append(content);
}
return tmplName;
}
我希望它有所帮助。