2013-10-03 41 views
1

我目前正在瀏覽一個backbone.js教程,而不是使用建議的REST服務,而是使用我公司的一個實際示例。問題是,該教程使用REST服務器這樣一個非常簡單的JSON回報:骨幹js幫我弄到我的JSON數組

{ 
    "name":"Brian" 
    "age":52 
}, 
    "name":"Mary" 
    "age":"27" 
} 
... etc. 

我自己的數據包含此類型的數組:

{ 
    "records":20, 
    "customers": [{name:"Simon", age:27},{name:"Mary", age:28}... etc.] 
} 

我想在「客戶」在這種情況下。我相信我可以在模型中使用parse:但本教程僅使用一個Collection並將其呈現給模板。我可以只用一個集合來做到這一點嗎?或者我應該製作一個模型並使用解析:?

回答

3

您可以使用一個集合 - 只需覆蓋Collection.parse。這是Backbone調用的將原始AJAX響應轉換爲模型屬性的功能。在你的情況下,你只需要它返回response.customers,而不是原始響應:

var MyCollection = Backbone.Collection.extend({ 
    parse: function(response) { 
     return response.customers; 
    } 
}); 
+0

不幸的是,我不能在做這件事後發現任何不同。我實現了覆蓋,沒有錯誤,但模板方面仍然在我的結果表上輸出空行。記錄成功處理程序顯示我有一個長度爲1的對象和models:Array [1]。如果我在控制檯級別下鑽,我最終會看到數據,但模板代碼<%blah.get('name')%>返回空白。它似乎雖然打印了一行,但無法獲取數據 – user2703990

+0

重新閱讀本文並不意味着暗示您的解決方案是錯誤的,並且實際上只是知道您可以在控制器中使用該解析功能非常棒。它是有道理的,看起來好像它*應該*工作。此外,我的模板有<%=不是 – user2703990

+0

以上的不正確的語法這最終工作。錯誤(驚喜!)歸結於我的狡猾編碼!非常感謝您的信息 – user2703990