javascript - 仅当给定 Handlebar 变量时才显示周围的 HTML

标签 javascript templates handlebars.js mustache

是否可以仅在 Handlebar(或 Mustache)变量不为空(或不为 null 等)时显示周围的 HTML?例如,给定以下上下文和模板:

var data = {field1:123,field2:123,field3:'',field4:123};

<dl>
    <dt>field1:</dt><dd>{{field1}}</dd>
    <dt>field2:</dt><dd>{{field2}}</dd>
    <dt>field3:</dt><dd>{{field3}}</dd>
    <dt>field4:</dt><dd>{{field4}}</dd>
</dl>

将显示以下内容:

字段1:
123
字段2:
123
字段4:
123

最佳答案

您可以使用每个 block 帮助器,而不是为每个字段编写 if block

<dl>
    {{#each this}}    
        {{#if this}}
            <dt>{{@key}}</dt><dd>{{this}}</dd>
        {{/if}}
    {{/each}}
</dl>

在这里,您将遍历对象并检查当前字段是否已设置,然后显示键和值,否则移动到下一个字段。如果您有大量数据,那么它可以帮助您,那么您不需要一次又一次地编写 if block 。希望这会有所帮助。

可以在这里找到工作示例:http://jsfiddle.net/prabhat_rai/rveap9jb/

关于javascript - 仅当给定 Handlebar 变量时才显示周围的 HTML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26343243/

相关文章:

javascript - 在服务器上呈现页面时如何包含样式?

javascript - Javascript 中带键盘的可导航菜单

javascript - Google Apps 脚本将已完成的项目移动到另一个电子表格

c++ - "template <class T>"和 "template <typename T>"有什么区别?

c++ - 具有函数指针的模板类不接受特化

handlebars.js - 如何在 Ghost 博客的帖子中实现过滤

javascript - Onclick 函数不会在handlebarJS、requireJS、BackboneJS 和 underscoreJS 组合中触发

javascript - Chrome 没有运行我的 jQuery

html - Visual Studio 2010 是否支持 HTML 5?

javascript - Foundation Orbit 无法与 Handlebars 配合使用