2013-03-30 71 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(); 

     }); 
    }); 


});