Javascript Spotify应用程序播放列表列表
我试图在原生spotify列表中显示当前用户播放列表的列表 我用这个来获取用户播放列表:Javascript Spotify应用程序播放列表列表,javascript,spotify,Javascript,Spotify,我试图在原生spotify列表中显示当前用户播放列表的列表 我用这个来获取用户播放列表: require([ '$api/models', '$views/list#List', '$api/library#Library' ], function(models, List, Library) { 'use strict'; var UsersLibrary = Library.forCurrentUser(); var test = function() {
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;
});
我一调用.forCollection,就得到了未捕获的类型错误:无法调用null的方法'indexOf'
经过一段时间的调试,我发现当spotify API脚本之一试图访问集合上未定义的uri
字段时出现了问题
这件事还有别的办法吗?或者我遗漏了什么?我原以为会有一个用户播放列表的uri,但我找不到任何东西
谢谢
-Ken该集合包含一组播放列表。您可以通过调用其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;
});
如果要为特定播放列表创建列表
,请执行以下操作:
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();
});
实际上,我希望列表中包含播放列表的名称而不是所有曲目,我将尝试loadAll,看看这是否能让我更接近。然后,尝试加载'name'属性而不是'tracks'。文档中是否涵盖了这一点?你有什么指示吗?所有的信息都在地图上。你可能会想看一看和看一看。
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();
});