我正在构建一个简单的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)
我在项目中应用的解决方案是增强 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)
| 归档时间: |
|
| 查看次数: |
450 次 |
| 最近记录: |