我有一个这样的模型:
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 relationsship。这个引用非常有用,因为调用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中的第一个对象,则计算属性会按原样更改。
我错过了什么?谢谢你的帮助!
答案 0 :(得分:0)
我认为您可能希望观察条目数组中每个条目的更改。
entryProxyBody:function() {
return this.get('entry.firstObject.body');
}.property('entry.@each.body')