这是我的 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})
});
我的海市蜃楼/配置
this.get('/cars',function(db,request) {
var qp = request.queryParams.searchString.toLowerCase();
return {
cars: db.cars.where({'color':qp}),
users: db.users
};
});
我得到了带有搜索颜色的汽车列表,但没有得到用户。它返回一个承诺,当它被完成时给出 null。
因为我使用的是 ember-data 1.13.8
我尝试使用这个Mirage 与 json 一起工作,但后来我得到错误 datum model is not defined 错误所以我猜新的 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