【发布时间】:2014-11-29 00:18:31
【问题描述】:
我有一个这样的模型:
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')
});
如您所见,它在函数 entryProxyBody 中引用了它的 Entry hasMany 关系。这个引用很有效,因为调用 entryProxyBody 确实会从 Entry 中的第一个对象返回 body-attribute。
但是我的问题是,当向 Entry-store 添加新值时,计算的属性没有更新。
我像这样添加一条新记录:
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 中使用 Ember Inspector 直接更新 Entry 中的第一个对象,那么计算的属性会发生应有的变化。
我错过了什么?感谢您的帮助!
【问题讨论】:
标签: ember.js ember-data