Я пытаюсь создать HTML-таблицу из плейлистов пользователя Spotify и всех треков в этих плейлистах.Я могу получить список воспроизведения просто отлично. Однако, чтобы получить треки в этом списке воспроизведения, мне нужно сделать еще один запрос.В настоящее время я использую помощник (get_track), чтобы сделать второй запрос, и вызываю его, когда я перебираю каждый список воспроизведения.Однако это не совсем работает .. Все возвращается неопределенным.Есть лучший способ сделать это?
Когда я консоль регистрирую response.items из запроса в помощнике, я получаю именно те данные, которые мне нужны, я просто не понимаю, как вставить это в мой шаблон ...?
<script id="playlist-template" type="text/x-handlebars-template">
<h1>playlists</h1>
<table>
<tr>
<th>playlist</th>
<th>tracks</th>
</tr>
{{#playlists.items}}
<tr>
<td><a href="{{external_urls.spotify}}">{{name}}</a></td>
<td>
<table>
<tr>
<th>track name</th>
</tr>
{{log (get_track tracks.href)}}
{{#each (get_track tracks.href)}}
<tr>
<td>{{track.name}}</td>
</tr>
{{/each}}
</table>
</td>
</tr>
{{/playlists.items}}
</table>
</script>
var playlistSource = document.getElementById('playlist-template').innerHTML,
playlistTemplate = Handlebars.compile(playlistSource),
playlistPlaceholder = document.getElementById('playlist');
Handlebars.registerHelper('get_track', function(tracks){
return $.ajax({
url: tracks,
headers: {
'Authorization': 'Bearer ' + access_token
},
success: function(response) {
return response.items;
}
});
});
if (access_token) {
// render oauth info
oauthPlaceholder.innerHTML = oauthTemplate({
access_token: access_token,
refresh_token: refresh_token
});
$.ajax({
url: 'https://api.spotify.com/v1/me',
headers: {
'Authorization': 'Bearer ' + access_token
},
success: function(response) {
userProfilePlaceholder.innerHTML = userProfileTemplate(response);
$('#login').hide();
$('#loggedin').show();
}
});
$.ajax({
url: 'https://api.spotify.com/v1/me/playlists',
headers: {
'Authorization': 'Bearer ' + access_token
},
success: function(response) {
playlistPlaceholder.innerHTML = playlistTemplate({Playlists: response}); //get playlists
console.log(response);
$('#login').hide();
$('#loggedin').show();
}
});
}