handlebars.runtime.js
<tbody data-bind="template: { name: 'HtmlTemplates/Passos/rowPassos.html', foreach: Passos }"></tbody>
出现该错误是因为 Knockoutjs 本身无法与 Handlebars 配合使用。 问题是,如何将预编译模板(handlebars.js)与knockoutjs一起使用?
有点晚了,但我想迟到总比不到好。
Knockout 适用于模板 ID。 (
<script id=".."></script>
) 不适用于 HTML 文件。我个人没有使用车把的经验,所以我无法对此发表评论。
但是,您似乎正在使用预编译,所以我猜这些 HTML 文件位于服务器上,而不是内联。
因此,您应该使用外部模板。我也在用它,效果很棒。
在你的情况下,你不应该给它
HtmlTemplates/Passos/rowPassos.html
,你应该给KnockOutHtmlTemplates/Passos/rowPassos
(所以没有.html),外部模板应该为你获取它。
如果您已经预编译了车把模板,那么您可以继续使用
html
中的 ko
数据绑定。
类似这样的:
var myTemplate = Handlebars.compile('<span class="strong {{#is option optimalValue}}ok{{else}}bad{{/is}}">SOMEVALUE</span>');
<span data-bind="html: myTemplate({option:5, optimalValue:4})"></span>