3

通过淘汰赛,我可以使用这样的模板:

<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());

这很好用,但我试图根据我从服务器返回的数据动态地在 javascript 中创建模板。

一篇文章讨论了我面临的相同问题并描述了基于 ko.jqueryTmplTemplateEngine 的解决方案。

谁能帮我让它工作?

还是有另一种(更简单的)方法可以做到这一点?

谢谢

4

1 回答 1

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/>&nbsp;<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;

} 

见小提琴

我希望它有所帮助。

于 2013-06-15T11:49:13.213 回答