【问题标题】:Using Handlebars.js precompiled templates with KnockoutJS将 Handlebars.js 预编译模板与 KnockoutJS 一起使用
【发布时间】:2013-03-31 20:04:58
【问题描述】:

步骤

  1. 添加了运行时把手handlebars.runtime.js
  2. HTML 参考:<tbody data-bind="template: { name: 'HtmlTemplates/Passos/rowPassos.html', foreach: Passos }"></tbody>
  3. 控制台错误未捕获的错误:找不到 ID 为 HtmlTemplates/Passos/rowPassos.html 的模板

发生错误是因为 Knockoutjs 不能与 Handlebars 本机一起使用。 问题是,如何将预编译的模板(handlebars.js)与 knockoutjs 一起使用?

【问题讨论】:

  • 我想知道您是否需要使用 Handlebars,因为 Knockout 本身可以完成 Handlebars 所做的许多诱人的事情。
  • Knockoutjs 有预编译的模板吗?我需要性能,所以我选择了车把并编译了模板。另一个细节是这些模板在应用程序的其他地方使用。
  • 不,Knockout 没有预编译的模板,所以如果您追求性能,那么 Handlebars.js 是更好的解决方案。

标签: knockout.js handlebars.js knockout-2.0


【解决方案1】:

有点晚了,但迟到总比没有好。

淘汰赛适用于模板 ID。 (<script id=".."></script>) 不适用于 HTML 文件。我个人没有使用车把的经验,所以我无法对此发表评论。

但是,您似乎正在使用预编译,所以我猜这些 HTML 文件存在于服务器上,而不是内联。

因此,您应该使用external templates。我也在使用它,效果很好。

在你的情况下,而不是给它HtmlTemplates/Passos/rowPassos.html,你应该给 KnockOut HtmlTemplates/Passos/rowPassos(所以没有 .html)并且外部模板应该为你获取它。

【讨论】:

    猜你喜欢
    • 2012-01-29
    • 2012-08-09
    • 1970-01-01
    • 2012-09-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多