使用ember数据关系可以是{async: true}
或{async: false
}。如何创建一个模型FIXTURES,模仿同步关系的行为,如文档中所述:
var attr = DS.attr,
hasMany = DS.hasMany,
belongsTo = DS.belongsTo;
App.Post = DS.Model.extend({
title: attr(),
comments: hasMany('comment'),
user: belongsTo('user')
});
App.Comment = DS.Model.extend({
body: attr()
});
Ember Data期望对/ posts / 1的GET请求将以下列格式返回JSON:
{
"post": {
"id": 1,
"title": "Rails is omakase",
"comments": ["1", "2"],
"user" : "dhh"
},
"comments": [{
"id": "1",
"body": "Rails is unagi"
}, {
"id": "2",
"body": "Omakase O_o"
}]
}
答案 0 :(得分:0)
您需要覆盖适配器的find
方法。 Here是find
中FixtureAdapter
方法的当前实现。您可以看到它只是找到具有给定ID的记录,然后返回它。您将要修改它以便它侧载正确的记录。像这样:
var json = {};
json[type.typeKey] = requestedRecord;
type.eachRelationship(function(name, meta) {
if (!meta.async) {
json[meta.type.typeKey.pluralize()] = [ /* put related records here */ ];
}
});
语法可能不完美,但你应该明白这一点。