2013-03-30 69 views
0

我正在尝试构建自定义播放列表。有跟踪路径的阵列。创建播放列表

这是我的尝试代码。

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”。 enter image description here

回答

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(); 

     }); 
    }); 


});