Handlebars JS——从数组的第三个(最后一个)元素获取数据

Handlebars JS -- Get Data from the Third (Last) Element of an Array

我有一个 JSON 数据对象,它是从 Spotify API 请求专辑列表的结果。数据对象包含一组专辑对象。该数组称为 "items"。每个对象都有一个包含 3 张图像的数组,该数组称为 "images"

我需要从数组中的第三张图片中提取 URL 并将其插入到我的 html 中,如下所示:

<img src="{{url}}"/>

这是我正在使用的模板:

{{#each items}}
  <div>
    <h2>{{name}}</h2>
    {{#each images}}
      {{#getSmallImage @index}}
        <img src="{{url}}"/>
      {{/getSmallImage}}
    {{/each}}
  </div>
{{/each}}

我注册了以下帮手:

Handlebars.registerHelper("getSmallImage", function (index, options) {
    return index == 2;
});

脚本没有打印所需的 img 元素,而是简单地打印单词 "true."

大错特错,我知道。

我在 SO 上看到过类似的帖子,但需要有关此特定问题的帮助。

Handlebars 在每个块中有一个 @last 变量。 documentation 表示它是一个布尔值,在迭代的最后一步为真。因此,您可以将模板更改为以下内容:

{{#each items}}
    <div>
        <h2>{{name}}</h2>
        {{#each images}}
            {{#if @last}}
                <img src="{{url}}"/>
            {{/if}}
        {{/each}}
    </div>
{{/each}}