1

我正在尝试为用户获取艺术家列表。在 0.x Api 中这很容易,但现在我做不到。

require([
        '$api/models',
        '$api/location#Location',
        '$api/library#Library',
        '$api/search#Search',
        '$api/toplists#Toplist',
        '$views/buttons',
        '$views/list#List',
        '$views/image#Image'
        ], function(models, Location, Library, Search, Toplist, buttons, List, Image) {

    var librarys = Library.forCurrentUser();
    console.log("LIBRARY", librarys);
      librarys.load("artists").done(
          function(artists) {
              console.log(artists);

              artists.load('owner').done(function(snapshot) {
                  console.log("SNAP",snapshot);

              });
          });
});

我得到了回应,"Library.forCurrentUser();"但接下来我尝试的一切都失败了。没有错误或其他东西,但也"librarys.load("artists")"没有"librarys.snapshot()"工作。

4

1 回答 1

4

通过从库中加载“艺术家”,您实际上并没有让艺术家回到回调函数中,而是一个加载了艺术家的库。由于您几乎不需要加载所有内容,因此如果您指定要加载的内容,则性能会更好。如果您想加载曲目以及艺术家,只需使用“艺术家”、“曲目”作为加载参数。

如果要查看当前用户库中的艺术家,可以这样做:

require(['$api/library#Library'], function(Library) {
    Library.forCurrentUser().load("artists").done(function(library) {
        library.artists.snapshot().done(function(snapshot) {
             for (var i = 0; i < snapshot.length; i++) {       
                 console.log(snapshot.get(i).name); 
             }
        });
    });
});

希望这可以帮助。

编辑:这适用于 Spotify Apps API 版本 1.25.1。

于 2013-05-15T06:52:46.140 回答