我正在尝试为用户获取艺术家列表。在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()"
都有效。
答案 0 :(得分:4)
通过从库中加载“艺术家”,您实际上并没有让艺术家回到回调函数中,而是一个已经加载了艺术家的库。由于您几乎不需要加载所有内容,因此如果您指定要加载的内容,则性能会更好。如果您想加载曲目和艺术家,只需使用“artists”,“tracks”作为加载参数。
如果您想在当前用户的库中看到艺术家,您可以这样做:
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。