2012-11-04 138 views
1

在我的Backbone動力應用程序中,我正在使用REST函數。在後端,它的PHP。我對服務器進行的任何REST調用都使用特定的響應結構。響應類型是這樣的:collection.fetch和collection.create中的主幹模型解析

$response = array(
    "success" => // true/false, 
    "data" => // can be an array or a value 
    "message" => // a string 
) 

我有一個名爲team_member模型和一個叫team_members集合。當team_members.fetch()被調用時,服務器響應(以一個成功的案例)是這樣的:

$response = array(
    "success" => // true 
    "data" => array(
      array (some member data), 
      array (some member data), 
      array (some member data) 
    ), 
    "message" => "Found 3 members" 
) 

的問題是,當一個模型是牽強,我還是要像上面的樣式做出響應而不僅僅是發送成員數據的數組。但是當我這樣做時,它不能很好地工作,因爲在collection.fetch()中數組是不同的。

解決此問題的最佳方法是記住我希望後端響應樣式保持一致,無論是單個模型還是集合。我希望我解釋得很好。謝謝。

回答

1

好吧我解決了這個問題。我可以撥打collection.fetch({ parse: false })。這確實會調用集合上的解析方法,但會抑制每個模型上的解析。因此,當我創建/更新特定模型時,我能夠使用model.parse()函數。

+0

這似乎不再適用於Backbone 1.0,但可以實現相同的解決方案http://stackoverflow.com/questions/18652437/backbone-not-parse-each-model-in-collection-後取 –