gpt4 book ai didi

ember.js - 删除记录后列表未更新

转载 作者:行者123 更新时间:2023-12-02 16:45:52 24 4
gpt4 key购买 nike

我有一个 ArrayController,其内容是在这样的路由中定义的:

App.UsersRoute = Ember.Route.extend({
model: function() {
return App.User.find();
},

setupController: function(controller, model) {
this._super(controller, model);
this.controllerFor('application').set('currentRoute', 'users');
}
});

我在模板中列出了数据:

<ul>
{{#each user in arrangedContent}}
<li>
{{user.lastName}} {{user.firstName}}
{{#linkTo "users.edit" user class="btn btn-primary btn-small"}}EDIT{{/linkTo}}
</li>
{{/each}}
</ul>

效果很好。

如果我创建一个新项目,它会自动添加到模板的列表中:

App.UsersNewRoute = Ember.Route.extend({
model: function() {
return App.User.createRecord({firstName: '', lastName: ''});
}
});

但是当我在“编辑” View 中删除项目时,它不起作用:

App.UsersEditController = Ember.ObjectController.extend({
...

destroy: function() {
this.get('content').deleteRecord();
this.get('store').commit();
this.transitionToRoute("users.index");
}
});

但是在"new" View 中,如果我删除新创建的项目,它就会起作用(无需提交)。

在编辑 Controller 中,如果我删除“提交”,列表就会更新,但是当我执行另一个操作时,列表会重新加载,并且删除的项目会重新出现(正常)。

那么,如何删除项目呢?

注意:我使用了 ember 和 ember-data 的“主”代码,刚刚刷新。

最佳答案

我刚刚在不同的情况下遇到了类似的问题。

我正在使用“grunt-ember-boilerplate ”(如果您喜欢 CoffeeScript 和 Ember,强烈推荐)。它附带了一个 Ember Data 版本,该版本有一个奇怪的错误,正确删除的记录将保留在缓存中,因此不会从列表中删除。

我没有时间弄清楚到底发生了什么;所以我只是尝试获取最新版本的 Ember Data (2013-05-10 10:20:34 -0700) 并立即解决了问题。

只是在这里发帖以防其他人遇到类似的问题。

此外,我同意 Jakub Arnold 的观点,他谈到不提交“存储”并使用事件监听器来确保干净的状态。就在今天,我发现了一篇关于该主题的非常有用的博客文章“Patterns and anti-patterns for Ember Data”。

关于ember.js - 删除记录后列表未更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14303406/

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