2015-05-30 29 views
0

我有一個模型,其中從服務器返回的某些數據不能被客戶端編輯,但用於顯示目的。但是,有些數據是可編輯的,應該發送到服務器。我應該如何區分這些?我覺得這涉及重寫parsetoJSONsave的某種組合,但我不知道如何以正確的方式去做這件事。你會如何做到這一點?如何在Backbone模型中爲演示文稿和持久性分隔數據?

回答

0

我的第一反應是「不要混淆與模型視圖狀態」,這將是最好創建一個特定視圖模型,通過你的數據模型爲initialize,並設置您需要的字段在那裏從數據模型的視圖模型。

覆蓋parse將不會執行任何操作,因爲它僅用於解析服務器的響應。

覆蓋toJSON並讓它只返回您感興趣發送到服務器應該工作的屬性。如果你看一下Backbone source

// Ensure that we have the appropriate request data. 
if (options.data == null && model && (method === 'create' || method === 'update' || method === 'patch')) { 
    params.contentType = 'application/json'; 
    params.data = JSON.stringify(options.attrs || model.toJSON(options)); 
} 

應該使用模型toJSON功能,只要你沒有通過任何屬性save