这是我的Ember检查员信息标签:
我正在使用ember-cli-mirage,我在这里遇到问题。
我无法获得模型的belongsTo关系。当我执行car.get('user')
时,我会在结果中得到一个已完成的承诺,但值始终为null
。
我的用户模型 从'ember-data'导入DS;
export default DS.Model.extend({
name: DS.attr('String'),
car: DS.belongsTo('car',{async: true})
});
我的车型
import DS from 'ember-data';
export default DS.Model.extend({
color: DS.attr('String'),
user: DS.belongsTo('user',{async: true})
});
my mirage / config
this.get('/cars',function(db,request) {
var qp = request.queryParams.searchString.toLowerCase();
return {
cars: db.cars.where({'color':qp}),
users: db.users
};
});
我得到了带搜索颜色的汽车列表,但我没有得到用户。 它返回一个promise,当fullfilled为null时。
因为我使用的是ember-data 1.13.8
我尝试使用此Mirage working with json,但后来我收到错误 基准模型没有定义错误,所以我想新的json api不是我的问题,由于某些原因我的ember数据使用旧的json格式和原始配置工作。
this.get('/cars', function(db, request) {
return {
data: db.cars.map(attrs => (
{type: 'cars', id: attrs.id, attributes: attrs }
))
};
})
我的汽车路线看起来像这样
model: function(params) {
self = this;
if(!params){
return [];
}
return this.store.findQuery('car',params);
},
我试过
return this.store.findQuery('car',params).then(function(item){
console.log(item.get('user'));
});
但我仍然有console.log //undefined
我可以看到我的json中的user_id已经返回。
解:
发现问题是我将关系保存为user_id = user.id.
应该是user=user.id