在淘汰赛验证中,即使我没有引用该文件,也会动态加载messagetemplate,验证插件会查找该文件并自动加载它。 所以我想知道这实际上是否适用于淘汰模板?或者我必须在我的代码中加载它们吗?
答案 0 :(得分:0)
您可以从服务器获取模板,将其添加到DOM并调用applyBindings。
ko.applyBindings(yourViewModel, document.getElementById("newTemplateId"));
答案 1 :(得分:0)
我们按以下方式加载模板:
在标题中添加引用单个模板文件或包含连锁模板的文件:
<script id="templateId" src="templates/template.html" type="text/html"></script>
<script src="templates/a_set_of_concatenated_templates.html" type="text/html"></script>
下面某处驻留代码加载模板,然后创建根模型并应用绑定:
<script>
(function() {
var promises = $("script[type='text/html']").map(function(_, script) {
if(script.src) {
var deffered = $.Deferred();
$.get(script.src, function(tmpl) {
script.text = tmpl;
if(tmpl.indexOf('type="text/html"') !== -1 || tmpl.indexOf("type='text/html'") !== -1) {
$(document.body).append(tmpl);
}
deffered.resolve();
})
return deffered.promise();
}
});
$.when.apply($.when, promises).done(function () {
ko.applyBindings(createRootModel());
});
})();
</script>
注意:正如您从代码中看到的那样,我们正在使用jQuery