Вычисляемое свойство Ember не обновляет представление при удалении первого объекта

У меня есть список комментариев к проекту, и мой шаблон показывает последние, с кнопкой, которая вызывает модальное окно для отображения всех комментариев. В этом модальном окне вы можете удалять комментарии по отдельности, что работает, и модальное обновление соответственно. Шаблон также обновляется до тех пор, пока я не удалю последнюю запись.

Вот мое первоначальное объявление собственности:

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

Несмотря на то, что я запросил контроллер и подтвердил, что firstObject не определен, вычисляемое свойство по-прежнему сохраняет свое значение.

Если я изменю вычисляемое свойство, чтобы просмотреть комментарий @each, например:

mostRecentComment: Ember.computed('[email protected]', '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 

Как мне обновить представление при удалении последней записи? Или я должен просто игнорировать эту ошибку?


person redOctober13    schedule 20.11.2014    source источник


Ответы (1)


Как насчет использования

mostRecentComment: Ember.computed.alias('sortedProjectComments.firstObject')
person Sam Selikoff    schedule 20.11.2014
comment
facepalm Да, это работает, и мне не нужно следить за двумя объектами. Тем не менее, это не избавляет от ошибки, и я не уверен, должен ли я просто позволить этому быть, поскольку все, кажется, работает отлично, или какова настоящая причина этой ошибки. - person redOctober13; 24.11.2014
comment
когда вы не включаете mostRecentComment, ошибка исчезает? - person Sam Selikoff; 24.11.2014