2014-04-29 49 views
0

我目前正在試驗Knockout JS只是爲了獲得庫的掛起和所有它的功能,我似乎碰到了處理外部JSON數據的牆。KnockoutJS和外部JSON

在Codepen下面我有一個虛擬的可觀察數組,它工作正常。下面評論說,這是我想要試驗的實際JSON數據。它需要使用$ .GETJSON的外部提要,並映射它來過濾結果以僅提取我想要在我的HTML模板中使用的數據。

我的問題是,我似乎無法獲得外部JSON綁定到HTML,因爲我總是得到'曲目'沒有定義,有時甚至是一個空的控制檯(這總是有幫助的)。

任何人都可以指出我如何處理外部JSON的正確方向?我已經完成了搜索,並且看不到很多專門處理外部JSON的信息。

http://codepen.io/anon/pen/Hnamf

+1

你能後的代碼 – christiandev

+0

@christiandev有一個codepen ... – leaksterrr

+0

@leaksterrr:您應該在您的問題*(以及小提琴或codepen)中發佈相關代碼*。不要讓人們難以回答你的問題。 –

回答

2

看着你codepen,它並不完全清楚自己想要如何工作的,但它肯定可以使工作。就像快速演示一樣,我將$.getJSON移動到init函數中,以便它實際上可以訪問視圖模型,然後在回調中設置您要獲得的屬性self.tracks。既然你是結合「軌道」,我改成「稱號」,以「軌道」,但可以很明顯的做任何對你有意義:

$.getJSON('http://api.soundcloud.com/users/guy-j/tracks.json?client_id=YOUR_CLIENT_ID', {limit: 200}, function(data) { 
     vm.tracks($.map(data, function (track) { 
      return { 
        artwork: track.artwork_url, 
        duration: track.duration, 
        permalink: track.permalink_url, 
        listens: track.playback_count, 
        stream: track.stream_url, 
        track: track.title 
      }; 
     })); 
    }); 

http://codepen.io/anon/pen/HAkhy