如何在Handlebar模板中找到数组长度?

Abh*_*dev 78 javascript templates handlebars.js

我有一个使用json对象渲染的Handlebars模板.在这个json我发送一个数组.像这样:

var json = {
               "array":["abc","def","ghi","jkl"] 
}
Run Code Online (Sandbox Code Playgroud)

现在在我的模板中,我想找到这个数组的长度.就像是:

{{#each item}}
   {{ array.length }}
{{/each}}
Run Code Online (Sandbox Code Playgroud)

在Handlebars文档中找不到它.

Abh*_*dev 168

我的错....

{{array.length}}实际上在模板内部工作.应该在发布之前检查/测试它.

  • 好吧,你让我免于测试它,谢谢.:) (32认同)
  • 对于任何想知道的人来说,这至少对Mandrills的车把味道不起作用.我还没有找到合适的替代品. (6认同)

Kev*_*ell 36

在这种情况下,您需要从每个块中引用每个的父变量:

{{#each array}}
    {{../array.length}}
{{/each}}
Run Code Online (Sandbox Code Playgroud)

我认为你的变量被命名为"数组"也可能会混淆这个问题.让我们假设一些不同的JSON只是为了澄清:

var json = {
    "fruit":["apple","orange","banana"]
};
Run Code Online (Sandbox Code Playgroud)

那么这样做:

<ul>
    {{#each fruit}}
        <li>{{this}} {{@index}} {{../fruit.length}}</li>
    {{/each}}
</ul>
Run Code Online (Sandbox Code Playgroud)

会产量:

<ul>
    <li>apple 0 3</li>
    <li>orange 1 3</li>
    <li>banana 2 3</li>
</ul>
Run Code Online (Sandbox Code Playgroud)