如何查找手柄模板内的数组长度?

我有一个使用json对象呈现的Handlebars模板。 在这个JSON我发送一个数组。 喜欢这个:

var json = { "array":["abc","def","ghi","jkl"] } 

现在在我的模板中,我想find这个数组的长度。 就像是:

 {{#each item}} {{ array.length }} {{/each}} 

无法在Handlebars文档中find它。

我的错….

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

在这种情况下,您需要在每个块内引用每个父variables:

 {{#each array}} {{../array.length}} {{/each}} 

我认为你的variables被命名为“数组”也可能会混淆这个问题。 让我们假设一些不同的JSON来澄清:

 var json = { "fruit":["apple","orange","banana"] }; 

那么这样做:

 <ul> {{#each fruit}} <li>{{this}} {{@index}} {{../fruit.length}}</li> {{/each}} </ul> 

会产生:

 <ul> <li>apple 0 3</li> <li>orange 1 3</li> <li>banana 2 3</li> </ul> 

你可以定义简单的助手来处理它:

 Handlebars.registerHelper('get_length', function (obj) { return obj.length; }); 

然后在你的模板中使用它,例如:

 {{get_length some_object}} 

尝试这个:

  {{#each item}} {{ json.array.length }} {{/each}}