我正在尝试构建自定义播放列表。有一个带轨道路径的数组。
这是我的试用代码。
var c = new models.BridgeCollection(models.Track,"CustomList");
c.load('type','uri').done(function(){
for (var i = 0; i < data.length; i++) {
var artist = data[i];
var s = models.Track.fromURI(artist.song); // this is track path
s.load('name').done(function(){
var d = c.add(s);
});
}
});
在此之后,我试图查看数据是否存在像这样的快照,但没有成功。
c.snapshot().done(function(snapshot) {
var len = Math.min(snapshot.length, 50);
for (var i = 0; i < len; i++) {
var d = snapshot.get(i);
}
});
经过大量的编辑后,我发现添加曲目时的响应如下所示。错误消息“未知请求:undefined_append”。
答案 0 :(得分:2)
现在我终于开始工作了。必须说新的API有点奇怪!
这会使用对象{song:'spotify:track:xxxxxx'}循环一个数组。将它们添加到临时播放列表中,完成所有操作后,创建一个列表视图并添加到html。
require(['$api/models','$api/models#Playlist','$views/list'], function(models,playlists,lists) {
var listClass = lists.List;
var sList = data;
var p = models.Playlist.createTemporary("CustomList");
p.done(function(pList){
pList.load('tracks').done(function(loadedPlaylist){
for (var i = 0; i < sList.length; i++) {
var artist = sList[i];
var track = models.Track.fromURI(artist.song); // this is track path
track.load('name','uri').done(function(loadedTrack){
loadedPlaylist.tracks.add(loadedTrack);
});
}
var listObj = listClass.forPlaylist(loadedPlaylist,{header:'fixed',type:'tracks',fetch:'scroll',fields:['artist'], height:'fixed', unplayable:'disabled'});
document.getElementById('playlistHolder').appendChild(listObj.node);
listObj.init();
});
});
});