ember中删除的记录不会从集合中删除

bca*_*lla 5 ember.js

我正在构建一个简单的CRUD应用程序.我有一个从服务器获取的记录列表,单击第一个,我在该show记录的页面上,其中一个delete按钮与控制器上的此操作相关联:

destroy: function() {
  this.content.deleteRecord()
  this.store.commit()
  this.transitionTo('usersIndex')
}
Run Code Online (Sandbox Code Playgroud)

我知道记录已删除,我可以在服务器上看到它被删除.AJAX请求成功.但是,记录仍显示在索引页面上.如果我从服务器进行硬刷新,它现在就消失了.

我的路由器usersIndex是以下内容:

App.UsersIndexRoute = Ember.Route.extend({
  model: function(params) {
    return App.Users.find();
  },
  setupController: function(controller, model) {
    controller.set('content', model);
  }
});
Run Code Online (Sandbox Code Playgroud)

Tre*_*Dev 0

我在项目中应用的解决方案是增强 usersIndex 以过滤掉任何 isDeleted 记录,例如

在模板中类似:

{{#unless user.isDeleted}}
  {{render 'user' user}}
{{/unless}}
Run Code Online (Sandbox Code Playgroud)

还可以利用 afterModel 钩子来测试 isDeleted 例如:

afterModel: function(model){
    if ((!model.get('users').isAny('isDeleted',false)) || model.get('users.length') === 0){
        this.send('exitUserIndex');
    }
}
Run Code Online (Sandbox Code Playgroud)