【问题标题】:{{#each}} makes handlebars template disappear{{#each}} 使车把模板消失
【发布时间】:2018-08-07 10:15:42
【问题描述】:

我在脚本标签中有一个模板

<div class = "exhibitionDescription">
<h3>{{title}}</h3>
  <p>{{infoText}}</p>   </div>

浏览器渲染得很好,

但是当我用 {{#each arrayName}} {{/each}}

包围它时
{{#每个数组名}}
<div class = "exhibitionDescription">
<h3>{{title}}</h3>
  <p>{{infoText}}</p>   </div>
{{/每个}}

浏览器将脚本标签呈现为绝对空白。

把手库包含在脚本标签之前 (这是最终浏览器输出的截图)

这是相同的代码,但模板周围没有 {{#each}} {{/each}}

更新!原来 {{#each}} 标签“切割”了它周围的一切,包括它自己,这不是应该发生的事情......

UPD 2!我想我遇到了问题 - 双花括号({{ }})只会让中间的代码消失!为什么?

【问题讨论】:

  • 你在 Handlebars.render 方法中传递什么类型的对象作为第二个参数?我怀疑您将 arrayName 作为单个对象发送,#each 需要对象数组。
  • 所以我用 Handlebars.compile 编译模板,向那里发送一个 id 为“exhibition-template”的 jquery-selected 对象,在那里我发送一个数组对象,其中一个称为“arrayName” .但问题是我发送到编译器的 html 是空白的

标签: javascript handlebars.js


【解决方案1】:

我解决了 - 我使用把手插入模板本身,这就是为什么我的花括号被把手解释为数据输入,而它只是在渲染时将它们删除!

代替

{{text}}

,我应该使用

\{{text}}

,它解决了问题并使其不理会花括号。

【讨论】:

    猜你喜欢
    • 2014-01-11
    • 1970-01-01
    • 2015-08-07
    • 2013-02-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-04
    相关资源
    最近更新 更多