扩展模型的最佳方式

时间:2012-05-17 21:03:38

标签: backbone.js underscore.js backbone-views

根据Backbone.js文档Model-parse执行以下操作:

  只要服务器返回模型的数据,就会调用

parse   获取并保存。

为了增加我已加载的模型,我使用了Model.parse()。我通过使用fetch对数据进行额外请求来实现此目的,然后使用该数据向现有模型添加属性。

示例:

获取对象为{age: 19}
在解析器将是{age: 19, isAdult: true}

之后

当我执行保存请求时,在PUT请求中我还有其他不需要的参数(例如isAdult)。我想拥有原始模型(在PUT请求中没有附加参数)。

实现Backbone目标的最佳方法是什么?

1 个答案:

答案 0 :(得分:2)

如果我理解你的问题......

当主干与使用保存的服务器对话时,它会发送模型的完整的表示。正如文档所说:

  

属性hash(如set中所示)应包含您所属的属性   喜欢改变 - 未提及的密钥不会被改变 - 但是,a   资源的完整表示将发送到服务器

所以默认行为是发送完整的模型。如果要实现自己的逻辑,则必须覆盖sync方法。稍微浏览扩展的骨干代码,您会在sync上面看到此评论:

  

//覆盖此函数以更改Backbone持续存在的方式    //模型到服务器。您将被传递请求类型和相关模型。

我会使用sync的默认实现作为我的起点。