【问题标题】:Handlebars {{#if}} does not render as expected车把 {{#if}} 未按预期呈现
【发布时间】:2013-06-25 01:04:42
【问题描述】:

我观察到一些非常奇怪的行为。在 div 类标签中使用 {{#if}} 时:

<div class="gallery-row {{#if helper}}class2{{/if}}">

我得到以下 DOM 片段:

<div class="gallery-row <!--data:Hb4bubiKDcedk9Z85-->">

我在其他类定义中有类似的{{#if}} 子句。当我在 div 标签之外使用{{#if}} 时,它似乎工作正常。我想我犯了一些愚蠢的错误或者这里有一个错误。

【问题讨论】:

  • "helper"-helper 返回什么?
  • 真或假。但这有关系吗?

标签: meteor handlebars.js


【解决方案1】:

注释是一个 spark(流星的模板系统)注释,在 HTML 标记中不能很好地工作(因为 html cmets 在其中无效)。这是已知问题,请参阅:https://github.com/meteor/meteor/issues/800

将你的助手移到标签之外。

{{#if helper}}
    <div class="class1 class2">
{{else}}
    <div class="class1">
{{/if}}

或者为classes 创建一个助手并改用&lt;div class="{{classes}}"&gt;

【讨论】:

  • 这是个策略。我在我的源代码的其他地方使用了这个符号,它工作得很好。关于您对{{#if}} 的建议,您确定我可以在块({{#if}})内写一个部分元素(不关闭)吗?我已经创建了一个助手,但我更愿意在我的 js 代码中留下类名。
  • Afaik 块助手有时会导致问题(其中带有“#”的问题)。但其他的不在编译的车把源中使用 spark 注释,所以它们不应该成为问题。
猜你喜欢
  • 1970-01-01
  • 2017-02-23
  • 2018-10-01
  • 2014-09-29
  • 2017-01-26
  • 1970-01-01
  • 1970-01-01
  • 2021-03-12
  • 1970-01-01
相关资源
最近更新 更多