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的解决方案是等效的。