2013-03-30 2 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); 
    } 
}); 

После многого поиска в редакторе я обнаружил, что ответ при добавлении дорожки выглядит так. Сообщение об ошибке «unknown request: undefined_append». enter image description here

ответ

2

Теперь я, наконец, получил его на работу. Надо сказать, что новый API немного странный!

Это петли массива с объектами {song: 'spotify: track: xxxxxx'}. Добавьте их в список воспроизведения temp, и когда все будет сделано, создайте представление списка и добавьте в 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(); 

     }); 
    }); 


});