我在访问评论/节目(/reviews/:id
)时尝试执行以下操作:
review
和一个user
。review
的ID,因此我需要先加载它,才能获得userId
userId
时,请使用user
userId
属性查询review
所以两个同步数据库查询,然后在路由的model
挂钩中一次返回它们。
我不介意它是否很慢,现在它足够快,我需要它才能现在。
这是我尝试过的,它不起作用:
评论/ show.js
export default Ember.Route.extend({
model: function(params) {
var user;
var review = this.store.findRecord('review', params.id).then(
function(result) {
user = this.store.findRecord('user', result.get('userId'));
}
);
return Ember.RSVP.hash({
review: review,
user: user
});
}
});
答案 0 :(得分:8)
你可以这样做:
export default Ember.Route.extend({
model: function(params) {
var reviewPromise = this.store.findRecord('review', params.id);
return Ember.RSVP.hash({
review: reviewPromise,
user: reviewPromise.then(review => {
return this.store.findRecord('user', review.get('userId'));
})
});
}
});
用户undefined
的原因是,在审核得到解决之前,您的第一个承诺尚未分配,但Ember.RSVP.hash已收到user
undefined