Binding 绑定到关系属性

Binding 绑定到关系属性,binding,ember.js,ember-data,Binding,Ember.js,Ember Data,我试图将DS.belongsTo关系的一个属性绑定为如下所示: App.User = DS.Model.extend({ name: DS.attr('string') }); App.Post = DS.Model.extend({ text: DS.attr('string'), user: DS.belongsTo('App.User'), userNameBinding: 'user.name' }); 我知道这个例子有点愚蠢,但想法就在这里 不幸的是,它不起作用(

我试图将
DS.belongsTo
关系的一个属性绑定为如下所示:

App.User = DS.Model.extend({
  name: DS.attr('string')
});

App.Post = DS.Model.extend({
  text: DS.attr('string'),
  user: DS.belongsTo('App.User'),

  userNameBinding: 'user.name'
});
我知道这个例子有点愚蠢,但想法就在这里

不幸的是,它不起作用(在以下情况下):

未捕获的TypeError:无法调用null的方法“send”

我还尝试使用
Ember.Binding.oneWay
,但它也不起作用。我目前的解决方法非常糟糕:

App.Post = DS.Model.extend({
  // code omitted

  userName: function() {
    return this.get('user.name');
  }.property('user.name')
});
你可以测试一下

使用的余烬版本:

  • 余烬数据
  • 余烬

似乎存在绑定到依赖于在
init
中设置的状态的属性的错误。我提出了一个错误

对于不那么难看的解决方案,可以使用
Ember.computed.alias

App.Post = DS.Model.extend({
  text: DS.attr('string'),
  user: DS.belongsTo('App.User'),

  userName: Ember.computed.alias('user.name')
});

我在中有一个工作示例。

仅供参考,这在master中,但不是pre.2的一部分。与此同时,@louiscoquio的解决方案是等效的。