在下面的代码中,我建立了 3 个 has-many/belongs-to 关系。
类别 > 子类别 > 项目
Category.js.coffee:
class App.Models.Category extends Backbone.RelationalModel
relations: [{
type: Backbone.HasMany
key: 'subcategories'
relatedModel: 'App.Models.Subcategory'
collectionType: 'App.Collections.Subcategories'
reverseRelation: {
key: 'category',
includeInJSON: 'id'
}
}]
App.Models.Category.setup() # Set up BB Relational
子类别.js.coffee:
class App.Models.Subcategory extends Backbone.RelationalModel
relations: [{
type: Backbone.HasMany
key: 'items'
relatedModel: 'App.Models.Item'
collectionType: 'App.Collections.Items'
reverseRelation: {
key: 'subcategory',
includeInJSON: 'id'
}
}]
App.Models.Subcategory.setup() # Set up BB Relational
Item.js.coffee
class App.Models.Item extends Backbone.RelationalModel
initialize: ->
...
App.Models.Item.setup() # Set up BB Relational
问题:
调用 item.get('subcategory') 按预期工作,返回一个 Backbone RelationalModel 对象。但是,由于某种原因,调用 category 会返回一个通用的 JS 对象。
item.get('子类别').get('类别')
返回:对象{id:1,标题:“标题”}
如果它是相关的,console.log @subcategory.relations 会显示消息“collectionKey=subcategory already exists on collection=true”。