车把模板中的json对象的长度

时间:2015-03-05 09:36:35

标签: handlebars.js

是否可以使用属性.length获取手柄模板内的json对象的长度 {{json.length}}
如果不是,可以根据键列表找到长度,然后使用.length等 {{json.keys.length}}

示例JSON结构

{1232134235423:[Name,Destination,Desc],  
 2134213214321:[Name],  
 2342354356634:[Name,Desc]
}

编辑1:我知道这可以通过使用自定义帮助程序来实现,但是这个长度必须在自定义帮助程序中使用。所以像array.length这样的东西会很有用

2 个答案:

答案 0 :(得分:2)

如果我理解你的编辑权利,问题不是使用另一个帮助者,而是在另一个帮助者的呼叫中调用它。 因此,您可以使用嵌套在自定义if-helper调用中的第二个帮助程序:

{{#customIf (objectLength json)}}
    do some stuff...
{{/customIf}}

根据此回答“Getting JavaScript object key list”,您可以使用Object.keys(json)获取所有对象的密钥。

新助手objectLength看起来像这样:

Handlebars.registerHelper("len", function(json) {
    return Object.keys(json).length;
});

答案 1 :(得分:0)

您可以像这样在模板中检查车把模板中对象的长度。因此,仅当对象具有一个或多个子元素时,HTML才会呈现。

{
  people: [
    "abc",
    "Alan Johnson",
    "Charles Jolley",
  ],
}


{{#if people.length}}
  <p>{{ people}} </p>
  <ul class="people_list">
    {{#each people}}
      <li>{{this}}</li>
    {{/each}}
  </ul>
{{/if}}