2012-03-20 59 views
0

我想,以顯示我的Spotify應用一個簡單的播放列表視圖中使用下面的代碼:無法創建Spotify應用播放列表視圖

sp = getSpotifyApi(1); 
var m = sp.require("sp://import/scripts/api/models"); 
var v = sp.require("sp://import/scripts/api/views"); 
var jq = sp.require('sp://XXX/jquery/jquery-1.7.1.min'); 

var pl = m.Playlist.fromURI('spotify:user:d3marcus:playlist:4zPZzImEYkUOVBvxIo42im'); 
var player = new v.Player(); 
player.track = pl.get(0); 
player.context = pl; 
var list = new v.List(pl); 
$('XXX').append(list.node); 

這將導致一個空列表視圖,並陷入錯誤SP://import/scripts/language.js:44「遺漏的類型錯誤:無法讀取的未定義的屬性 '長'」

有什麼建議?

+1

似乎這與清單文件的字符集有關。如果我保存爲utf-8,它將工作,否則不會。 – 2012-03-20 20:09:50

回答

1

我會說你得到這個錯誤,因爲當你做pl.get(0)播放列表尚未加載。爲了確保播放列表模式已經加載,你可以做任何

pl = m.Playlist.fromURI('spotify:user:d3marcus:playlist:4zPZzImEYkUOVBvxIo42im'); 
pl.observe(models.EVENT.LOAD, function() { 
    player.track = pl.get(0); 
    ... 
}); 

m.Playlist.fromURI("spotify:user:d3marcus:playlist:4zPZzImEYkUOVBvxIo42im", function(pl) { 
    player.track = pl.get(0); 
    ... 
}); 
0

我不知道,不過你可以試試這個:

$('YYY').append($(player.node)); 
$('XXX').append($(list.node)); 

,而不是

$('XXX').append(list.node); 

讓我們知道...

0

對於1.0 API:

require([ 
    '$api/models', 
    '$views/list#List' 
], function (models,List) { 

var addList = function(list) { 
    list.load('tracks').done(function(list) { 
     list.tracks.snapshot().done(function(trackSnapshot){ 

      // Make the playlist view 
      var multiple_tracks_player = document.getElementById('addedTracksList'); 
      var playableList = List.forPlaylist(list); 
      multiple_tracks_player.appendChild(playableList.node); 
      playableList.init(); 

     }); 
    }); 
} 

exports.addList = addList; 
} 

// Example of use: 
addList(models.Playlist.fromURI(...)) 

我測試過它上面的使用,所以它應該工作。

我發現這個在tutorial-app available on github「播放音樂」下-section - >「播放曲目列表」

我希望這是有幫助的。

相關問題