更新
这可能与this question有关。
当我使用rec.delete()和rec.save()或rec.destroy()删除记录时,它会删除记录但有时会在视图中留下子模型片段,如果我刷新屏幕则会消失。关于这个问题的可能原因/解决方案的任何想法?
我的路由器地图
App.Router.map(function () {
this.resource('cart', function () {
this.route("index", { path: "/" });
this.route('product', {path: 'products/:product_id'});
});
});
用户在cart.index中启动,然后选择转换为ProductRoute的产品。然后当他们删除我的ProductController中的产品时:
delete: function () {
var rec = this.get('model'),
self = this;
rec.deleteRecord();
rec.save().then(function () {
self.transitionToRoute('cart.index');
});
}
然而,当cart.index被重新显示时,它有时会在视图中保留分层多模型产品的子模型残余,否则它会正确删除记录。有任何想法吗?或者,我如何使cart.index刷新其模型?
在CartIndexRoute的afterModel钩子中,我可以看到产品记录被标记为isDeleted - 但它应该被删除?
答案 0 :(得分:0)
到目前为止,我能找到的最佳解决方案是增强cart.index路由以过滤掉任何isDeleted记录。像这样的东西:
afterModel: function(model){
if ((!model.get('products').isAny('isDeleted',false)) || model.get('products.length') === 0){
this.send('exitCartIndex');
}
}
然后在我的模板中:
{{#unless product.isDeleted}}
{{render 'sumCartProduct' product}}
{{/unless}}
如果有人有更好的解决方案,那就太棒了。