KO外部模板引擎/ HotTowel模板/ Infuser加载

时间:2013-05-28 11:25:52

标签: knockout.js template-engine hottowel

我正在尝试使用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

我注意到,刷新几次后,最终会显示模板。

非常感谢任何帮助。谢谢!

2 个答案:

答案 0 :(得分:2)

KO外部模板库根据需要加载模板。 Durandal(Hot Towel的一部分)通过其模块和require.js为您完成此任务。所以你根本不需要KO外部模板引擎。

答案 1 :(得分:0)

我在this post中描述的这个引擎遇到了同样的问题。

我刚刚将它改为Durandal,现在一切正常。

Durandal有更清晰的模块加载和视图合成方法(A replied question about their comparison)。