我正在尝试实现BackboneRelational并继续获取
“无法用。实例化多个Backbone.RelationalModel 每种类型的ID相同!“
class App.Models.User extends Backbone.RelationalModel
urlRoot : '/api/users'
idAttribute: 'id'
relations: [
type: Backbone.HasMany
key: 'plots'
relatedModel: 'App.Models.Plot'
collectionType: 'App.Collections.Plots'
includeInJSON: false
reverseRelation:
key: 'user_id',
includeInJSON: 'id'
]
class App.Models.Plot extends Backbone.RelationalModel
urlRoot : '/api/plots'
idAttribute: 'id'
如果我切换其中一个模型来扩展Backbone.Model我可以实例化这两个模型,但是我得到了关系功能被破坏的所有警告..
我正在努力实现以下目标:
plot = new App.Models.Plot({id : 700})
plot.fetch()
plot.get('user')
我错过了什么?
答案 0 :(得分:10)
“每个id的一个模型”背后的一般概念是Backbone Relational使用数据存储(Backbone.Relational.store
)来消除对已经加载的模型的重复请求。
幸运的是,它还提供few helpers来帮助通过商店访问模型。您可以使用findOrCreate
附加到App.Models.Plot
的{{1}}方法,而不是提供ID并获取图表。
plot = App.Models.Plot.findOrCreate(700)
user = plot.get('user')