【发布时间】:2012-11-24 02:07:14
【问题描述】:
在下面的代码中,我建立了 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('subcategory').get('category')
返回:Object {id: 1, title: "标题"}
如果是相关的,console.log @subcategory.relations 会显示消息“collectionKey=subcategory already exists on collection=true”。
【问题讨论】:
-
如果它返回一个通用的js对象,那么设置BB肯定有问题
-
我怀疑可能是 Categories -> Subcategories 的反向关系会影响类别中定义的关系?
标签: backbone.js coffeescript backbone-relational