我正在尝试使用KO外部模板引擎和John Papa的Hot Towel模板。 模板没有加载,好吧,它继续说“正在加载......”。 我查看了Chrome调试器,它显示模板已成功检索。 我可以看到DOM中呈现的代码
<div class="infuser-loading">Loading...</div>
这就是我所做的。 1)使用Nuget
下载最新的KO外部模板引擎2)添加到BundleConfig: TrafficCop.js,infuser.js,koExternalTemplateEngine.js
3)添加到config.js以初始化infuser并从shell.js调用。
var configureExternalTemplates = function () {
infuser.defaults.templatePrefix = "_";
infuser.defaults.templateSuffix = ".tmpl.html";
infuser.defaults.templateUrl = "./App/tmpl";
infuser.defaults.ajax
};
4)在视图中,我试着打电话:
<div class="view-list" data-bind="template: { name: 'Listbox', foreach: object }">
</div>
如上所述,我可以在跟踪中看到模板文件已正确加载状态为200. /App/tmpl/_listbox.tmpl.html
我注意到,刷新几次后,最终会显示模板。
非常感谢任何帮助。谢谢!
答案 0 :(得分:2)
KO外部模板库根据需要加载模板。 Durandal(Hot Towel的一部分)通过其模块和require.js为您完成此任务。所以你根本不需要KO外部模板引擎。
答案 1 :(得分:0)
我在this post中描述的这个引擎遇到了同样的问题。
我刚刚将它改为Durandal,现在一切正常。
Durandal有更清晰的模块加载和视图合成方法(A replied question about their comparison)。