我正在使用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.
答案 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