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

편집자를 많이 본 후 나는 트랙을 추가 할 때 반응이 이렇게 보입니다. 오류 메시지 "알 수없는 요청 : 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(); 

     }); 
    }); 


}); 
관련 문제