我正在使用带有 Rails 3.2 后端的主干.js 和主干关系 0.5.0。我有一个有很多笔记的卡片模型。
这是我的 JS 模型和集合:
Workflow.Collections.Cards = Backbone.Collection.extend({
model: Workflow.Models.Card,
url: '/cards'
});
Workflow.Models.Card = Backbone.RelationalModel.extend({
modelName : 'card',
urlRoot : '/cards',
relations: [
{
type: Backbone.HasMany,
key: 'notes',
relatedModel: 'Workflow.Models.Note',
collectionType: 'Workflow.Collections.Notes',
includeInJSON: false,
reverseRelation: {
key: 'card',
includeInJSON: 'id'
}
}]
});
Workflow.Collections.Notes = Backbone.Collection.extend({
model: Workflow.Models.Note,
url: '/cards/74/notes' // intentionally hard-coded for now
});
Workflow.Models.Note = Backbone.RelationalModel.extend({
modelName : 'note',
urlRoot : '/notes'
});
正常提取效果很好,但是当我在控制台中尝试 fetchRelated 时,我得到一个空数组:
card = new Workflow.Models.Card({id: 74}) // cool
card.fetch() // hits the sever with GET "/cards/74" - works great
card.fetchRelated('notes') // [] - didn't even try to hit the server
奇怪的是,这行得通:
card.get('notes').fetch() // cool - GET "/cards/74/notes"
我可以使用该方法并解析响应文本,但感觉真的很脏。
有人知道我在这里缺少什么吗?
先谢谢了,这个真的很折磨我!
斯图