我有一个模型,其中服务器返回的某些数据不能被客户端编辑,但用于显示目的。但是,有些数据是可编辑的,应该发送到服务器。我应该如何分开这些?我觉得这涉及到覆盖parse
和toJSON
或者save
的某种组合,但我不确定如何以正确的方式解决这个问题。你会怎么做?
答案 0 :(得分:0)
我的第一反应是“不要将视图状态与模型混合”,创建特定的视图模型会更好,将数据模型传递给{{1从那里的数据模型中设置视图模型所需的字段。
覆盖initialize
将不会执行任何操作,因为它仅在解析来自服务器的响应时使用。
覆盖parse
并让它只返回您在发送到服务器时感兴趣的属性应该有效。如果你看Backbone source
toJSON
只要您没有将任何属性传递给// 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
函数。