Ember数据删除嵌套记录
Ember data delete nested records
我有多个购物车。
每个购物车都有多个产品。
当我尝试从购物车中删除产品时,生成的 url 会尝试在全局范围内删除产品,而不仅仅是从特定的购物车中删除。
App.IndexRoute = Ember.Route.extend({
model: function() {
return this.store.find("cart", 2);
},
actions: {
remove: function(product){
product.deleteRecord();
product.save();
}
}
});
{{#each product in model.products}}
<div>{{product.title}} <button {{action "remove" product}}>x</button></div>
{{/each}}
生成的 HTTP 请求是删除产品/{id}
我希望它能以某种方式在 url 中包含购物车 ID。如何处理这种情况?
您正在调用 deleteRecord()
删除记录,从而全局删除它。您真正需要做的是解除产品与购物车的关联。
假设在您的范围内您的购物车名为 cart
,您可以更改模板以也传递购物车:
{{#each product in model.products}}
<div>{{product.title}} <button {{action "remove" product cart}}>x</button></div>
{{/each}}
并修改您的删除操作以解除此特定购物车与产品的关联:
actions: {
remove: function(product, cart){
cart.get('products').removeObject(product);
cart.save();
}
}
我有多个购物车。 每个购物车都有多个产品。
当我尝试从购物车中删除产品时,生成的 url 会尝试在全局范围内删除产品,而不仅仅是从特定的购物车中删除。
App.IndexRoute = Ember.Route.extend({
model: function() {
return this.store.find("cart", 2);
},
actions: {
remove: function(product){
product.deleteRecord();
product.save();
}
}
});
{{#each product in model.products}}
<div>{{product.title}} <button {{action "remove" product}}>x</button></div>
{{/each}}
生成的 HTTP 请求是删除产品/{id}
我希望它能以某种方式在 url 中包含购物车 ID。如何处理这种情况?
您正在调用 deleteRecord()
删除记录,从而全局删除它。您真正需要做的是解除产品与购物车的关联。
假设在您的范围内您的购物车名为 cart
,您可以更改模板以也传递购物车:
{{#each product in model.products}}
<div>{{product.title}} <button {{action "remove" product cart}}>x</button></div>
{{/each}}
并修改您的删除操作以解除此特定购物车与产品的关联:
actions: {
remove: function(product, cart){
cart.get('products').removeObject(product);
cart.save();
}
}