Javascript 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() {

我试图在原生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;
});
我一调用.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();
});