2013-04-09 72 views
3

步骤

  1. 新增运行车把handlebars.runtime.js
  2. 预编译模板HTML参考:<tbody data-bind="template: { name: 'HtmlTemplates/Passos/rowPassos.html', foreach: Passos }"></tbody>
  3. 控制台错误未捕获的错误:无法找到ID HtmlTemplates /帕索斯/ rowPassos模板。 HTML

Knockoutjs with handlebars.js使用Handlebars.js与KnockoutJS

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

+0

我在想你是否需要使用Handlebars,因为Knockout本身可以做很多类似Handlebars的诱人东西。 – 2013-04-09 17:37:22

+0

Knockoutjs有预编译模板吗? 我需要性能,所以我选择了句柄并编译模板。 另一个细节是这些模板在应用程序的其他地方使用。 – ridermansb 2013-04-09 18:19:49

+0

不,Knockout没有预编译的模板,所以如果你在性能之后,那么Handlebars.js是一个更好的解决方案。 – 2013-04-10 00:42:43

回答

0

有点晚了,但比我猜想的晚得多。

Knockout可以使用模板ID。 (<script id=".."></script>)不适用于HTML文件。我个人没有把手的经验,所以我不能评论。

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

因此,您应该使用external templates。我也使用它,它工作真棒。

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