在我的路线中,我有这个:
import Ember from 'ember';
export default Ember.Route.extend({
model:function(params) {
return this.store.findRecord('book',params.id);
},
afterModel: function(model) {
var title = model.get('title');
var username = model.get('user').get('name');
$(document).attr('title', 'This '+ book + ' is belongs to '+ username);
},
});
模型用户和模型书通过
互相参考
在书模型中:
title: DS.attr('string'),
user: DS.belongsTo('user'),
当我玩console.log(标题)时:它显示了我想要的内容 但是使用console.log(用户名):不,它什么都没有......
我需要帮助解决这个问题..
答案 0 :(得分:1)
问题是在获得user
关联时,它实际上返回了一个承诺。因此,请尝试将afterModel
挂钩更改为此类内容。
afterModel: function(model) {
var title = model.get('title');
model.get('user').then(function(user){
var userName = user.get('name');
$(document).attr('title', 'This '+ book + ' is belongs to '+ userName);
});
},
修改强>
使用model.user.username
将在模板中起作用,因为在承诺得到解决时,模板中的绑定会自动解析。但是在javascript中,你需要等待承诺得到解决。