3

我正在尝试绑定这样的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'
});

我知道这个例子有点愚蠢,但想法就在这里。

不幸的是,它不起作用(在model.js 中,在这一行):

未捕获的类型错误:无法调用 null 的方法“发送”

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

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

  userName: function() {
    return this.get('user.name');
  }.property('user.name')
});

您可以在此 JSFiddle 中对其进行测试。

使用的 Ember 版本:

4

1 回答 1

4

绑定到依赖于init. 我在 Ember 问题跟踪器上提交了一个错误。

对于不那么丑陋的解决方案,您可以使用Ember.computed.alias

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

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

我在这个 JSBin中有一个工作示例。

于 2013-01-16T16:28:32.977 回答