骨干关系不能实例2个RelationalModel对象(Backbone-relational ca

2019-09-22 00:57发布

我想实现BackboneRelational并不断得到

“不能与每个类型相同的ID实例化多个Backbone.RelationalModel!”

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')

我在想什么?

Answer 1:

后面的“每个ID只能有一个模型”的情况总的想法是,骨干关系使用的数据存储( Backbone.Relational.store ),以消除已经被加载模型的一再要求。

幸运的是,它也提供了几个帮手穿过商店,以帮助获取模式。 而不是提供一个ID和打水的情节,你可能会改用findOrCreate你会发现附着方法App.Models.Plot

plot = App.Models.Plot.findOrCreate(700)
user = plot.get('user')


文章来源: Backbone-relational cannot instantiate two RelationalModel objects