gpt4 book ai didi

ruby-on-rails - 在 Ember Data 修订版 12 中删除记录的正确方法是什么?

转载 作者:太空宇宙 更新时间:2023-11-03 16:30:53 24 4
gpt4 key购买 nike

我使用的是 Ember Data 的修订版 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删除记录 on <App.Fact:ember402:31> while in state rootState.deleted.saved. Called with undefined

删除记录的正确方法是什么。我在谷歌上搜索过,找不到任何答案,而且 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)

控制台输出:

单击带有事实 ID 46 记录的删除记录以从传递了 ID 46 的 yes 函数进行控制台。记录从模板显示的列表中消失,留下 id 为 47 和 48 的两条记录。单击记录 47 的删除在日志中显示记录 id 46 再次传递。

最佳答案

这应该可以正常工作。

我猜你一直在删除同一条记录。 deleteFact 似乎是用相同的 fact 调用的。

更新(尝试修复模板)

{{#each fact in controller}}
<tr>
<td>{{title}}</td>
<td>{{body}}</td>
<td>{{#linkTo 'facts.show'}}View{{/linkTo}} | <a {{ action 'deleteFact'}} class="button small deny delete-button">Delete</a></td>
</tr>
{{else}}
<tr>
<td colspan='4'>No facts registered at present.</td>
</tr>
{{/each}}

您的 FactsController:

FactsController = Ember.ArrayController.extend({
itemController: 'fact'
});

您的事实控制人:

FactController = Ember.ObjectController.extend({
deleteFact: function() {
self.get('content').deleteRecord();
self.get('content.transaction').commit();
}
});

关于ruby-on-rails - 在 Ember Data 修订版 12 中删除记录的正确方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16159557/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com