1

プレイリストを含むSpotifyアプリを作成しようとしています。プレイリストビューに追加の列を提供する必要があります。モデルが直後に編集を上書きするため、ビューにhtmlを挿入できません。プレイリストアイテムに自分のデータを追加する方法はありますか?現在、プレイリストビューの横にある別の<ul>を使用するハックがあります。これはプレイリストの拡張のように見えますが、多くの機能が不足しています。

更新:これが私がやったことです。これは主に以下のコメントによって促されました。

playlistModel = new models.Playlist();
    var playlistView = new views.List(playlistModel, function(track) {
    var myData = getDataFor(track.data.uri);
    var trackView = new views.Track(track,
            views.Track.FIELD.NAME |
                views.Track.FIELD.ARTIST |
                views.Track.FIELD.DURATION |
                views.Track.FIELD.ALBUM);

    var name = document.createTextNode(myData.name);

    var img = document.createElement('img');
    img.src = 'https://graph.facebook.com/' + myData.friendID + '/picture';
    img.className = 'friendPic';
    img.alt = 'facebook profile picture of ' + myData.friendName;

    var span = document.createElement('span');
    span.appendChild(img);
    span.appendChild(name);

    trackView.node.insertBefore(span, trackView.node.firstChild);

    return trackView;
});
$('#playlist').append(playlistView.node);
4

1 に答える 1

1

私はこれを機能させましたが、内部のデータ構造に依存するため、これが本番環境の適切で確実な計画であるかどうかはわかりません。

//Code alters the list returned from views.List and appends a column with the text PLAY.
var results = document.getElementById('idOfElementToDisplayListIn');
var pl = models.Playlist.fromURI(playlist_url, function(playlist) {
        var list = new views.List(playlist, function (track) {
    var ntrack=new views.Track(track, 
           views.Track.FIELD.NAME |
           views.Track.FIELD.ARTIST |
           views.Track.FIELD.DURATION |
           views.Track.FIELD.ALBUM);
    var aNode = document.createTextNode("PLAY");
    ntrack.node.appendChild(aNode);
    return ntrack;
    });
    results.appendChild(list.node); 
});
于 2012-07-06T18:41:33.710 に答える