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”。 在此处输入图像描述

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 回答