[英]Spotify App List of Playlists
我正在嘗試在本地Spotify列表中顯示當前用戶播放列表的列表。
我有這個來獲取用戶播放列表:
require([
'$api/models',
'$views/list#List',
'$api/library#Library'
], function(models, List, Library) {
'use strict';
var UsersLibrary = Library.forCurrentUser();
var test = function()
{
console.log(UsersLibrary.playlists);
var playlists = UsersLibrary.playlists.snapshot().done(function(s){
var length = s.length;
for(var x = 0; x < length; x++)
{
var meta = s._meta[x];
if(!meta.name) continue ; // skip folders
}
});
};
exports.test = test;
});
而且我可以循環播放列表沒有問題。 當我嘗試使用Spotify List對象並創建列表時,問題開始了。 我嘗試了這個(以及一些具有相同結果的變體):
var test = function()
{
console.log(UsersLibrary.playlists);
var playlists = UsersLibrary.playlists.snapshot().done(function(s){
var list = List.forCollection(s._collection, {"layout":'table'});
});
};
調用.forCollection時,我立即收到Uncaught TypeError: Cannot call method 'indexOf' of null
。
經過一段時間的調試,我發現當Spotify API腳本之一嘗試訪問未定義集合中的uri
字段時,問題就來了。
還有其他方法可以解決這個問題嗎? 我當時想為用戶的播放列表提供一個uri,但我找不到任何東西。
謝謝,
-肯
該集合包含一組播放列表。 您可以調用loadAll
函數來加載所有它們:
require([
'$api/models',
'$views/list#List',
'$api/library#Library'
], function(models, List, Library) {
'use strict';
var UsersLibrary = Library.forCurrentUser();
var test = function() {
UsersLibrary.playlists.snapshot().done(function(s){
s.loadAll().done(function(playlists){
// playlists is an array of Playlist objects
});
});
};
exports.test = test;
});
如果你想創建一個List
特定的播放列表,你會怎么做:
var playlist = playlist[0]; // we pick, for example, the first one
playlists.load('tracks').done(function(p) {
var list = List.forCollection(p.tracks, {"layout":'table'});
document.body.appendChild(list.node);
list.init();
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.