如何在模型破坏时在服务器上获取骨干模型的ID

时间:2014-05-06 13:57:09

标签: node.js backbone.js express

我正在尝试在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

1 个答案:

答案 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