我正在使用Ember Data的修訂版12。在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並找不到任何答案,並且源代碼和測試數據看起來像是這些都是必須完成的。
模板:
{{#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)
輸出在控制檯:
點擊刪除與事實編號46的日誌記錄從是功能ID 46是安慰通過。記錄從模板顯示的列表中消失,留下id爲47和48的兩條記錄。單擊刪除記錄47在日誌中顯示記錄ID 46已再次通過。
嘗試使用'App.store.commit()'而不是'fact.store.commit()' – chrmod 2013-04-23 08:36:32
發生同樣的異常。 – jmcd 2013-04-23 13:17:32