我有一个情况使用backbone.js,我有一个模型集合和一些关于模型的附加信息。例如,假设我要返回一个金额列表:他们有一个与每个模型相关的数量。现在假设每个金额的单位总是相同的:说夸脱。然后JSON对象我从我的服务回报可能是这样的:在backbone.js集合中持久保存和加载元数据
{
dataPoints: [
{quantity: 5 },
{quantity: 10 },
...
],
unit : quarts
}
现在骨干收藏有本身这个元数据与采集相关联没有真正的机制,但有人建议我在这个问题: Setting attributes on a collection - backbone js,我可以用.meta(property, [value])
样式函数扩展集合 - 这是一个很好的解决方案。但是,自然会出现这样的结果,我们希望能够从上面的json响应中清楚地检索这些数据。
Backbone.js为我们提供了parse(response)
函数,该函数允许我们指定从何处提取集合的模型列表,并结合url
属性。但是,我没有办法知道如何在不超载的情况下制作更智能的功能fetch()
,该功能可以删除已经可用的部分功能。
我的问题是:有没有比重载fetch()
(并试图将其称为超类实现)更好的选择来实现我想要实现的目标?
感谢
我知道这违背了你在你链接的其他后得到了答案,但集合不会拥有模型的所有属性,比如'parse',能够覆盖。如果集合需要元数据有意义,那么不妨反映在Backbone提供的对象结构中,而不是使用元上集合解决方案“IMO带外”。 – Stoive 2011-05-09 04:23:57
这对我来说似乎很合理。关键在于能够重写模型对象以及集合上的parse/url/fetch。非常感谢。 – idbentley 2011-05-09 13:33:58
现在不推荐使用Collection.refresh(),而是使用Collection.reset()。 – JMWhittaker 2012-07-09 18:06:52