2013-04-09 66 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),外部模板應該爲你取。