【发布时间】:2013-04-12 17:11:43
【问题描述】:
我已经阅读了很多次文档,但我仍然不清楚这方面的内容。我认为骨干关系完全有可能做一些它没有做的事情。
我正在寻找基于键定义关系的方法,以避免所有的样板文件都是废话。
以规范的艺术家和专辑为例: 一位艺术家有许多专辑,由album.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 引用其自身邻接列表样式的示例模型
【问题讨论】:
标签: javascript backbone.js backbone-relational