1

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

我注意到的是,刷新几次后,模板最终显示出来。

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

4

2 回答 2

2

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

于 2013-05-28T20:44:01.203 回答
0

我在这篇文章中描述的这个引擎有同样的问题。

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

Durandal 对模块加载和视图组合有更简洁的方法(关于它们比较的回答问题)。

于 2013-09-17T06:36:37.920 回答