从Handlebars模板中的JSON数组中获取最后一个元素

时间:2012-05-25 13:14:51

标签: json handlebars.js client-side-templating

因此,我发现可以使用以下方法在Handlebars中访问数组元素:

{{myArray.2.nestedObject}} and {{myArray.0.nestedObject}}

..例如获取第三个和第一个元素。 (handlebars-access-array-item

有没有办法从数组中获取最后一个元素? 我尝试为它创建一个帮助器:

Handlebars.registerHelper("lastElement", function(array) {
  return array.last();  //Array.prototype extension
});

...并在模板中调用如下:

{{lastElement myArray}} or even {{lastElement myArray.lastElement nestedArray}}

可悲的是,这不起作用。辅助函数显然返回字符串。我需要的是一种即使使用多维数组也能做到这一点的方法。

2 个答案:

答案 0 :(得分:7)

应该有效,我已经测试过了。

模板:

{{last foo}}

数据:

{foo : [1,2,3,4,5,6]}

助手:

Handlebars.registerHelper("last", function(array) {
  return array[array.length-1];
});

答案 1 :(得分:-1)

上述代码在所有情况下都能正常工作。但是如果数组传递了一个空数组,则存在把手函数抛出错误的可能性。而是执行空检查,然后相应地返回值。