删除firstObject时,Ember计算属性不更新视图

时间:2014-11-20 20:47:52

标签: ember.js properties computed-properties

我有一个项目评论列表,我的模板显示最新的,带有一个按钮,显示一个模式以显示所有评论。在该模态中,您可以单独删除注释,这些注释可用,并且模式会相应地更新。模板也会更新,直到我删除最后一条记录。

这是我对该财产的原始声明:

mostRecentComment: Ember.computed('projectComments.firstObject', function() {
  return get(this, 'sortedProjectComments.firstObject');
})

即使我查询了控制器并确认firstObject未定义,计算属性仍然保持其值。

如果我改变计算属性来观察@each评论,如下所示:

mostRecentComment: Ember.computed('projectComments.@each.projectComment', 'projectComments.firstObject', function() {
  return get(this, 'sortedProjectComments.firstObject');
})

然后视图进行更新,但控制台转出了一个丑陋的错误:

Error: No model was found for '0'
    at new Error (native)
    at Error.EmberError (http://localhost:4200/assets/vendor.js:18042:23)
    at Ember.Object.extend.modelFor (http://localhost:4200/assets/vendor.js:75114:19)
    at __exports__.default.JSONSerializer.extend.extractSingle (http://localhost:4200/assets/vendor.js:68260:28)
    at apply (http://localhost:4200/assets/vendor.js:23073:27)
    at superWrapper [as extractSingle] (http://localhost:4200/assets/vendor.js:22647:15)
    at __exports__.default.Ember.Object.extend.extractSave (http://localhost:4200/assets/vendor.js:67828:21)
    at __exports__.default.Ember.Object.extend.extractDeleteRecord (http://localhost:4200/assets/vendor.js:67779:21)
    at __exports__.default.Ember.Object.extend.extract (http://localhost:4200/assets/vendor.js:67665:37)
    at http://localhost:4200/assets/vendor.js:75760:32 

如何在删除最后一条记录时更新视图?或者我应该忽略这个错误?

1 个答案:

答案 0 :(得分:1)

使用

怎么样?
mostRecentComment: Ember.computed.alias('sortedProjectComments.firstObject')