Handlebars.js: @partial-block 不清楚或呈现错误

创建于 2016-01-12  ·  5评论  ·  资料来源: handlebars-lang/handlebars.js

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)

1144

最有用的评论

@morgondag我有一个类似的问题,并通过使用 if 语句解决了它:

{{#if @partial-block}}
  {{> @partial-block }}
{{/if}}

希望你已经解决了:)

所有5条评论

如果直接渲染模板,则不会有部分块。 部分块仅在模板呈现为部分时才可用,即{{#> 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。

此页面是否有帮助?
0 / 5 - 0 等级