javascript - Handlebars #仅限顶层

标签 javascript handlebars.js

我刚刚开始使用 Handlebars ,所以如果这个问题非常简单或已经得到解答(我找不到任何搜索内容),我提前道歉。

我有一个多级 json 对象,我想在模板中显示它。但是,我只希望显示顶级元素,如果它们具有子属性,则不显示。

当前模板:

<div id="example">
{{#each myObject}}
   {{@key}}: {{this}}<br>
{{/each}}
</div>

示例对象:

{
a: value1,
b: value2,
c: value3,
d: { a: 1, b: 2, c: 3 },
e: value5
}

我想要的(简化的)输出是:

<div>
a: value1<br>
b: value2<br>
c: value3<br>
e: value5<br>
</div>

<div>
d<br>

a: 1<br>
b: 2<br>
c: 3<br>
</div>

我正在努力解决的是如何向我的模板添加 if 以便测试该属性下面是否有子对象并且不在第一部分中显示它。

然后,对于每个具有子对象的属性,将其显示在下面(或其他位置)并迭代其每个子属性。

任何帮助将不胜感激。

最佳答案

您可以通过创建辅助函数来实现此目的:

Handlebars.registerHelper('checkForJson', function (a) {
        if(typeof a =='object')
    {
        return true;
   }
   return false;
});

并在 html 中使用它:

 <div id="example">
                {{#each .}}
            {{#if (checkForJson this) }}
                    {{#each this}}
                         {{@key}}: {{this}}<br>
                    {{/each}}
            {{else}}
                    {{@key}}: {{this}}<br>
            {{/if}}
        {{/each}}
</div>

关于javascript - Handlebars #仅限顶层,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45589983/

相关文章:

javascript - 谷歌分析报告 API : number of active users in Javascript

javascript - 通过 for 循环中的拼接从数组中删除项目

javascript - 单击缩略图 > 查看下一个缩略图(循环)

javascript - TypeError : *. getMonth 不是函数

javascript - 使用 Handlebars 的 Highcharts 中的附加工具提示

javascript - 如何添加选择选择器项目的链接?

javascript - Handlebars #each 因一件元素而失败

ruby - mandrill 和嵌套合并变量

javascript - handlebar js 扩展算术加法助手

javascript - 如何使用 Handlebars 迭代数组并访问 map ?