2012-03-14 53 views
13

我對Backbone.js庫是全新的,並通讀整個文檔並理解庫的工作。在下面的情況下,服務器的響應應該如何正確運行使用骨幹網設計的應用程序(無需額外添加筆劃/代碼)。backbonejs入門 - 服務器應該返回什麼

假設像模特下面

window.person = Backbone.Model.extend({ 
    defaults: { 
     name: "", 
     email: "[email protected]" 
    }, 
    urlRoot: "PersonApp" 
}); 
  1. 應該服務器回報假設驗證走到什麼JSON以及model.save()

  2. 什麼JSON應該服務器換取model.fetch()

  3. 什麼JSON應服務器返回model.destroy()

回答

15

如果你在Backbone.Sync documentation一看,說,你應該與已經在服務器上更改屬性的請求作出迴應。

因此,要回答你的問題:

  1. model.save的JSON請求應該返回已經改變的保存部分的屬性。在創建的情況下,這將是整個模型;在更新的情況下,只是已更改的字段。 (或者如果你懶惰,不介意更新整個客戶端模型,那麼你可以返回整個模型)。

    所以一個可接受的反應會是{ 'name' : 'a name', 'email' : '[email protected]' }

  2. 取應該只是返回JSON形式的模型。因此,我用於model.save的相同示例可以正常工作。

  3. 我不完全確定,但我不認爲Backbone驗證從刪除請求返回的數據,所以你應該能夠返回任何東西,只要它不是HTTP錯誤。根據下面的@ a.real.human.being,一個空的答案也會導致錯誤。所以在體內(或類似的)返回一個200的「OK」似乎是一個合理的計劃。

+4

來自'destroy'的JSON響應並不重要。骨幹聽取20倍的成功反應。 – abraham 2012-03-14 18:06:05

+0

@abraham是的我知道,骨幹依靠HTTP狀態200確定,所以任何返回HTTP狀態意味着請求成功的骨幹 – Deeptechtons 2012-03-15 04:39:43

+3

@abraham事實並非如此。如果您在'destroy'上不發送JSON響應,則會在模型上生成一個'error'。然而,如果你發送任何東西(甚至是'json_encode(「生日快樂」)'),那麼它就認爲它是成功的。 – 2013-09-06 00:52:46