0

这是我的 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

4

1 回答 1

0

解决方案:发现我将关系保存为user_id = user.id. 它应该是user=user.id

于 2015-09-13T11:26:07.770 回答