我在我的项目中使用了knockout和jQuery.tmpl框架,有时我只使用jquery-tmpl生成这样的HTML:
var html = $("#template").tmpl(data);
html.appendTo(destElement);
我不喜欢那个地方我有用于绑定的敲门模板和用于html生成以及绑定的某个jquery模板。
我想知道knockout是否能够像jquery tmpl那样从模板生成html。 如果是这样,我将完全删除jquery-tmpl,因为在大多数情况下我只使用它来生成模板中的html。
请咨询
答案 0 :(得分:3)
AFAIK Knockout不支持将预编译模板存储为jQuery模板等JavaScript变量。
因此,您在问题中给出的示例不可能仅使用Knockout模板绑定。绑定确实提供了一些callbacks for post- and after-rendering,但是这与回调的输入不完全相同,这些回调是编译的DOM元素而不是JavaScript引用它。
在我们当前的项目中,我们使用Handlebars作为我们的模板引擎,这是我选择此选项的两个主要原因:
我没有使用淘汰模板绑定,我的所有模板都被解压缩为单独的文件,并被预编译为单独的.js文件。我所要做的就是包含已编译的.js文件,我可以将模板作为JS变量访问。
如果您选择jQuery模板并想要预编译模板,您必须将所有模板添加到一个HTML文件中并编写一些JavaScript来获取每个模板并将其转换为JavaScript或者您可以编写一个小节点应用程序,它接收你的模板,转换它们并再次输出它们。