Handlebars.js是否允许动态模板?

时间:2017-03-13 14:41:40

标签: javascript handlebars.js spotify-desktop

我已经开始使用Spotify API作为个人学习练习,并从初学者教程开始。

给出的示例代码使用handlebars.js作为模板,我实际上认为它非常酷。我怎么能找到一种方法去做我想要完成的事情。

这是我的模板

<script id="recently-played-template" type="text/x-handlebars-template">

    <div class="">
      <dl class="dl-horizontal">
        <h3> Recently Played </h3>

    <p>{{items.0.track.artists.0.name}} - {{items.0.track.name}}</p> 

      </dl>
    </div>
  </div>
</script> 

我正在调用spotify API。成功后,它将使用该JSON响应数据填充模板,然后将其放入占位符div以向用户显示数据

        $.ajax({
            url: 'https://api.spotify.com/v1/me/player/recently-played',
            headers: {
              'Authorization': 'Bearer ' + access_token
            },
            success: function(response) {
              recentlyPlayedPlaceholder.innerHTML = recentlyPlayedTemplate(response);


              $('#login').hide();
              $('#loggedin').show();
            }
        });

所以我想弄清楚如何做的是根据返回的曲目数量来构建我的模板。

假设用户在一周内没有使用spotify,然后收听3首歌曲。然后我想要显示3首歌曲。

如果他们听了10我想要10显示。

我只是不确定如何使模板动态化。

我不需要直接的答案只是朝着正确的方向推进。任何帮助都会得到帮助。

1 个答案:

答案 0 :(得分:1)

我认为您的代码正常运行而没有任何错误。 删除<p>{{items.0.track.artists.0.name}} - {{items.0.track.name}}</p>并尝试以下代码。

  {{#each items}}
    <li>{{track.name}}</li>
  {{/each}}