2012-10-31 30 views
2

我只是圍繞BackboneJS開始工作,但我仍在努力的(很多)事情之一是模型如何與服務器端數據庫記錄同步。例如,我有一個模型「Dvd」,現在我更改「Dvd」模型的名稱,例如名稱,然後調用save(),服務器端如何知道數據庫記錄更新? Backbone是否保存數據庫行ID或其他內容?如何識別BackboneJS模型serverside

回答

1

是的,通常情況下,您將設置您的Backbone模型,以便它們具有您正在使用的任何對象的數據庫行ID。當它們中的一個在客戶端是全新的並且尚未保存到服務器時,它將具有默認ID或沒有ID,這並不重要,因爲如果初始保存事務成功時服務器將分配ID 。

在保存或更新模型項時,Backbone希望服務器使用某些JSON進行回覆,該JSON包含自進行保存或更新請求後發生更改的任何屬性。在對初始保存請求的響應中,服務器通知客戶端新保存的項目的行ID(並且還可以發送可能需要同時傳遞給客戶端的任何其他信息)。

默認情況下,模型對象的'id'屬性被假定爲它的唯一標識符,但是如果您爲主鍵使用不同的標識符,主幹可以讓您更改此屬性。只要給你的模型一個idAttribute參數(請參閱Backbone.Model.extend()的文檔)來做到這一點。

同時,urlRoot參數或url函數可以賦予您的模型,以表徵用於向給定模型發送各種ajax請求到服務器的url。