2013-05-14 119 views
1

我正在尝试获取用户的艺术家列表。在0.x Api中很容易,但现在我无法做到。如何获取用户的所有艺术家(Spotify Api 1.x)?

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

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

如果你想看到在当前用户的库中的艺术家,你可以做像这样:

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应用程序API版本1.25.1。

相关问题