把手JS - 从数组的第三个(最后)元素获取数据

时间:2016-05-02 00:10:28

标签: jquery json handlebars.js spotify

我有一个JSON数据对象,它是从Spotify API请求一个专辑列表的结果。数据对象包含一个相册对象数组。该数组称为“项目”。每个对象都有一个包含3个图像的数组,该数组称为“图像”

我需要从数组中的第三个图像中提取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;
});

脚本只打印单词“true”,而不是打印所需的 img 元素。

我知道,可怕的错误。

我在SO上看过类似的帖子,但需要帮助解决这个问题。

1 个答案:

答案 0 :(得分:1)

句柄在每个块中都有一个@last变量。 documentation表示它是一个bool,在迭代的最后一步都是如此。因此,您可以将模板更改为以下内容:

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