knockout.js 在KnockoutJS中使用Handlebars.js预编译模板

r8uurelv  于 2023-10-20  发布在  其他
关注(0)|答案(2)|浏览(161)

步骤

1.添加了运行时缓冲条handlebars.runtime.js

  1. HTML参考:<tbody data-bind="template: { name: 'HtmlTemplates/Passos/rowPassos.html', foreach: Passos }"></tbody>
    1.控制台错误 * 未捕获错误:无法找到ID为HtmlTemplates/帕索斯/row帕索斯.html的模板 *

发生错误的原因是Knockoutjs本身不适用于Handlebars。问题是,如何在knockoutjs中使用预编译模板(martubars.js)?

ttp71kqs

ttp71kqs1#

  • 虽然晚了点,但总比不做好 *

敲除工程与模板ID的。(<script id=".."></script>)不包含HTML文件。我个人没有经验的酒吧,所以我不能对此发表评论。
但是,您似乎使用了预编译,所以我猜这些HTML文件存在于服务器上,而不是内联的。
因此,您应该使用external templates。我也在使用它,它工作得很棒。
在你的例子中,你应该给予KnockOut HtmlTemplates/Passos/rowPassos(所以没有.html),而不是给它HtmlTemplates/Passos/rowPassos.html,外部模板应该为你获取它。

qlckcl4x

qlckcl4x2#

如果你已经预编译了你的textbar模板,那么你可以继续使用ko中的html数据绑定。
大概是这样的:

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>

相关问题