0
我有這樣一個模型:EmberJS - 計算財產引用firstObject不更新
App.Conversation = DS.Model.extend({
body : DS.attr('string'),
created_at : DS.attr('date'),
entry : DS.hasMany('Entry', {async: true}),
user : DS.belongsTo('User'),
allEntriesLoaded : DS.attr('boolean'),
entryProxyBody : function() {
return this.get('entry.firstObject.body');
}.property('entry.firstObject.body')
});
正如你可以看到它引用了其進入的hasMany relationsship在功能entryProxyBody。這個引用很好用,因爲調用entryProxyBody確實會從Entry中的第一個對象返回body-attribute。
但是,我的問題是,計算屬性沒有更新,當一個新的價值被添加到入門店。
我添加了一個新的記錄是這樣的:
App.NewController = Em.ObjectController.extend({
actions: {
save: function() {
var entry = this.store.createRecord('entry', {body: 'Test', created_at: new Date() });
this.store.find('conversation', this.parentController.get('id')).then(function(conversation) {
conversation.get('entry').pushObject(entry);
entry.save();
});
}
},
});
然而..如果我直接用灰燼督察在Chrome更新條目的第一個對象,然後計算屬性發生變化,因爲它應該。
我錯過了什麼?感謝您的幫助!
謝謝您的回答。可悲的是,這並沒有做到這一點,因爲當我將新對象推送到對話時,該屬性仍未更新。 – fischer 2014-10-04 06:50:47
是的,它只會在您推入入口數組時更新。所以'get('entry')。pushObject ...'因爲我們正在監聽每個條目的更改 – 2014-10-05 21:42:35