我正在尝试使用Ember-Data和提供的RESTAdapter来加载这样的对象:
{
"videos":[
{
"id":"5062f3c30959c6c732000005",
"tags":[
{"_id":"5062f3cb0959c6c732000006","name":"hello"},
{"_id":"5062f3cb0959c6c732000007","name":" world"}
]
}
]
}
这里我有一个有很多标签的视频对象。 tags
属性声明为embedded:
Video = DS.Model.extend {
tags: DS.hasMany('Tag', {embedded: true})
}
Tag = DS.Model.extend {
video: DS.belongsTo('Video')
}
当我尝试使用
加载视频时Video.find()
adpter总是尝试在/tags
向我的服务器发送一个get请求,这自然会失败,因为我的服务器没有直接访问标签。相反,标签已嵌入/videos.json。
那么embedded: true
在余烬数据关联中的含义是什么?
答案 0 :(得分:3)
我隐约相信发生的事情是它不信任嵌入式tags
没有id
参数。尝试给Tag
id: DS.attr('string', { key: '_id' })
。
顺便说一下,embedded
在您的示例中拼写错误 - 您的应用中是否正确?
更新:也许更好的建议是在primaryKey: '_id'
内设置Tag
。 (doc)