2013-01-16 178 views
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, at this line)工作:

Uncaught TypeError: Cannot call method 'send' of null

我還試圖用Ember.Binding.oneWay,但它也不管用。我目前的解決方法是相當醜陋的:

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

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

您可以測試它in this JSFiddle

使用灰燼版本:

回答

4

有似乎是綁定到依靠init設立國有性質的錯誤。我提交了一個錯誤on the Ember issue tracker

一個不太醜陋的解決方案,你可以使用Ember.computed.alias

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

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

我有this JSBin工作的例子。

+0

僅供參考,這是主人,但不是pre.2的一部分。同時,@ louiscoquio的解決方法是相同的。 –