我已经看过文档好几次了,但这方面我仍然不清楚。我认为骨干关系完全有可能做一些它没有做的事情。
我正在寻找基于键定义关系的方法,以避免所有的样板文件都是胡说八道。
以规范的艺术家和专辑为例:一个艺术家有许多专辑,由专辑.artist_id 定义
/api/artist/62351 可能会返回
{
id: 62351,
name:"Jimi Hendrix"
}
同样 /api/album?artist_id=62351 可能会返回
[
{
id:5678,
name: "Are You Experienced?"
artist_id: 62351
},
{
id: 4321,
name: "Axis: Bold as love",
artist_id: 62351
}
]
我如何定义艺术家和专辑关系,这样
var hendrixInstance = new Artist({id:62351});
hendrixInstance.get('albums');
会根据专辑foreign_key Artist_id 获取并返回专辑集合吗?它一定只是我还没有尝试过的 key/keySource/keyDestination 的一些排列,或者是骨干关系没有试图解决的问题,但是我的 doc groking 失败了,我认为对此有一个简明的答案SO 可能会帮助未来的 Google 员工。
var Artist = Backbone.RelationalModel.extend({
urlRoot: '/api/artist',
relations:[{
key: 'albums', //Docs say this is the foreign key name, but in practice it doesn't appear that way. Need keySource/Destination?
type: Backbone.HasMany,
reverseRelation: {
key: 'artist',
type: Backbone.HasOne
}
}]
});
var Album = Backbone.RelationalModel.extend({
urlRoot: '/api/album'
});
奖励指向一个示例模型,该模型使用 parent_id 引用其自身邻接列表样式