我正在尝试在Marionette应用程序中使用Backbone模型。我有一个集合视图,可以正确显示我对特定模型的所有条目。项视图包含删除按钮。它会侦听该按钮的点击,在发生这样的点击时调用删除功能:
events: {
'click .deleteItem': 'deleteItem'
},
deleteItem: function (event) {
console.log('id', this.model.id);
this.model.destroy({ wait: true });
}
this.model.destroy
正确向myModel/
网址发出DELETE请求,但似乎没有包含要删除哪个条目的任何信息。例如,在服务器端(Node.js服务器),我在req.body中看不到任何内容(是的,我正在使用正文解析器)。在响应服务器端的DELETE请求时,如何获取我尝试删除的条目的ID?
注意:我可以在客户端轻松搞定:this.model.id
答案 0 :(得分:0)
使用路线参数:
app.delete('/thing/:id', function(req, res){
console.log('deleting ' + req.params.id);
});
然后你的模型看起来像这样:
var ThingModel = Backbone.Model.extend({
idAttribute: '_id', // or whatever your id attribute is
urlRoot: '/thing'
});
然后你会删除它:
var someThing = new ThingModel({_id:123, foo:'bar'});
someThing.destroy();
听起来你没有声明模型的urlRoot
。阅读here。