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」。 ここに画像の説明を入力

4

1 に答える 1

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

        });
    });


});
于 2013-04-03T10:28:45.677 に答える