Ember数据无法获得关系

时间:2015-07-29 21:45:34

标签: javascript ember.js ember-data

我正在使用Ember 1.13.3和ember-data 1.13.5。

我有两个关系模型:

点:

import DS from 'ember-data';

export default DS.Model.extend({
  user: DS.belongsTo('user'),
  description: DS.attr('string'),
  created_at: DS.attr('date'),
  image_src: DS.attr('string')
});

用户:

import DS from 'ember-data';

export default DS.Model.extend({
  username: DS.attr('string'),
  email: DS.attr('string'),
  avatar: DS.attr('string'),
  spots: DS.hasMany('spot')
});

现在我打电话给所有的地方并在它们上面循环。一切都很好地显示了现场模型;但是,当我尝试检索用户的用户名spot.user.username时,它不起作用。我检查了网络,甚至没有请求发送到users/:user_id

我也尝试添加asyn: true

DS.belongsTo('user', {async: true})

但这也行不通。在ember 1.13中有没有新的关系?我知道belongsTo调用正在到达,因为它在ember控制台中显示为弃用:

In Ember Data 2.0, relationships will be asynchronous by default. You must set `user: DS.belongsTo('user', { async: false })` if you wish for a relationship remain synchronous.

1 个答案:

答案 0 :(得分:0)

必须在双方都定义async属性。

点:

 import DS from 'ember-data';

    export default DS.Model.extend({
      user: DS.belongsTo('user', {async:true}),
      description: DS.attr('string'),
      created_at: DS.attr('date'),
      image_src: DS.attr('string')
    });

用户同样的事情:

import DS from 'ember-data';

export default DS.Model.extend({
  username: DS.attr('string'),
  email: DS.attr('string'),
  avatar: DS.attr('string'),
  spots: DS.hasMany('spot', {async: true})
});

关于这个主题的讨论:

http://discuss.emberjs.com/t/what-is-an-async-relationship-async-true-vs-async-false/4107