ember-cli在afterModel中获取参考模型

时间:2016-06-14 19:29:20

标签: ember.js

在我的路线中,我有这个:

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(用户名):不,它什么都没有......

我需要帮助解决这个问题..

1 个答案:

答案 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中,你需要等待承诺得到解决。