且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

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

更新时间:2023-08-25 22:43:34

我应该工作,
$ b

模板:


数据:

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

Helper:

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


So, I found that array elements can be accessed in Handlebars using:

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

..to get the third and first elements for instance. (handlebars-access-array-item)

Is there a way to get the last element from an array? I tried creating a helper for it:

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

...and calling it as follows in the template:

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

Sadly, this doesn't work. Helper functions return strings apparently. What I need is a way to be able to do this even with multi-dimensional arrays.

Should work, I've tested it.

Template:

{{last foo}}

Data:

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

Helper:

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