Я использую ревизию 12 данных Ember.Каков правильный способ удаления записи в Ember Data revision 12?
У меня есть простой метод на ArrayController
, который пытается удалить одну запись, и вызывается из действия в шаблоне:
deleteFact: function(fact) {
self=this;
window.App.confirm(Em.I18n.t('Delete fact?'), {
yes: function() {
fact.deleteRecord();
fact.store.commit();
}
});
}
Это всегда работает с первой записью удален, и список показывает, что запись исчезает. Я использую Rails, а сервер обрабатывает DELETE
и возвращает пустой объект JSON и status 200
. Если удалить еще одну запись в любое время после этого первого удаления я всегда получить внутреннее исключение брошено сразу:
Uncaught Error: Attempted to handle event
deleteRecord on <App.Fact:ember402:31> while in state rootState.deleted.saved. Called with undefined
Что это правильный путь, чтобы удалить запись. Я искал Google и не могу найти ответы, и исходный код и тесты для данных ember выглядят так, как будто это все, что нужно сделать.
Шаблон:
{{#each fact in content}}
<tr>
<td>{{fact.title}}</td>
<td>{{fact.body}}</td>
<td>{{#linkTo 'facts.show' fact}}View{{/linkTo}} | <a {{ action 'deleteFact' fact}} class="button small deny delete-button">Delete</a>[{{fact.id}}]({{fact.stateManager.currentState.path}})</td>
</tr>
{{else}}
<tr>
<td colspan='4'>No facts registered at present.</td>
</tr>
{{/each}}
шаблона Вывод:
Title Facts Actions
asdfsd asdfsadf View | Delete[46](rootState.loaded.saved)
asdfsd asdfsadf View | Delete[47](rootState.loaded.saved)
asdfsd asdfsadf View | Delete[48](rootState.loaded.saved)
Выход в консоли:
Нажатие удалить на запись с Fact Id 46 журналов на консоль от функции да что идентификатор 46 был прошло. Запись исчезает из списка, отображаемого шаблоном, оставляя две записи с идентификатором 47 и 48. Щелчок по удалению для записи 47 показывает в журнале, что идентификатор записи 46 был снова принят.
Попробуйте использовать 'App.store.commit()' вместо 'fact.store.commit()' – chrmod
Такое же исключение. – jmcd