Template.hbs
<div>
{{> @partial-block }}
</div>
Then Compile:
Handlebars.compile(fs.readFileSync("./template.hbs", "utf8"))({});
Èrror
/handlebars/runtime.js:266
throw new _exception2['default']('The partial ' + options.name + ' could not be found');
^
Error: The partial @partial-block could not be found
at Object.invokePartial (/handlebars/runtime.js:266:11)
at Object.invokePartialWrapper [as invokePartial] (/handlebars/runtime.js:68:39)
at Object.eval (eval at createFunctionContext (/handlebars/compiler/javascript-compiler.js:254:23), <anonymous>:6:28)
如果直接渲染模板,则不会有部分块。 部分块仅在模板呈现为部分时才可用,即{{#> template}}this block{{/template}}
@kpdecker所以没有办法使用handelbars api 编译带有部分块的模板???
@partial-block
不应该像变量一样吗? 如果它们没有被定义,它们就不会被打印出来。
玉也以同样的方式处理。
@morgondag我有一个类似的问题,并通过使用 if 语句解决了它:
{{#if @partial-block}}
{{> @partial-block }}
{{/if}}
希望你已经解决了:)
@frederfred你发表评论已经有一段时间了。 但是我注意到您的示例没有包含在测试用例中。 我认为它像这样工作是巧合(它只能工作,因为编译后的partial-block
-partial 存储在执行上下文的data
-object 中。
由于您收到了如此多的thumbs-up
评论,我建议我们在此处为该示例添加一个测试用例。
如果有人想编写该测试,我会接受 PR。
最有用的评论
@morgondag我有一个类似的问题,并通过使用 if 语句解决了它:
希望你已经解决了:)