【发布时间】:2012-05-15 09:47:53
【问题描述】:
如果我有一个模型的一些参数是集合,例如:
var Mdl = Backbone.Model.extend({
defaults:{
test: new Backbone.Collection()
}
});
现在假设我在这个模型上进行了一次提取,在我的服务器端响应中,我有一个名为“test”的属性,它是一个数组。我想将数组添加到我的集合中或使用此数组重置它,以便它仍然是主干集合,但是如果我在我的模型上运行重置,默认情况下不会这样做,正如预期的那样,它将覆盖“测试”属性与响应中的数组。
让它将响应属性“test”视为骨干集合而不是数组的最佳方法是什么?我基本上想检查该属性是否是一个数组,然后检查该属性是否已经在模型上定义为一个集合,如果是,那么用数组重置这个集合而不是覆盖它。
我可以通过创建自己的 Backbone Sync 来做到这一点,但我不确定这是否是最好的方法,你们觉得呢?
谢谢。
【问题讨论】:
-
您不需要覆盖同步。 Backbone 提供了 parse 方法,它采用
responsedocumentcloud.github.com/backbone/#Model-parse 你现在必须编写代码来做你想做的事情 -
你真的这样做了吗?
new Backbone.Collection()我宁愿创建一个集合的实例,如下所示。var tstCol = Backbone.Collection.extend({}); ... defaults:{test:new tstCol()}...