骨干model.destroy不触发DELETE请求

这是我的模型。

library.BookModel = Backbone.Model.extend({ urlRoot: '/api/books', defaults: { id : null, imageurl: 'noimage.jpg', } }); 

我试图通过调用book.destroy来发出删除请求。 但是这不是触发请求。 当应用程序初始化。 该模型用来自服务器的数据填充。 在模型中设置了两个ID属性。 id (客户端id)和_id (mongodb id)。 我在模型初始化函数中将客户端ID初始化为book.attributes.id = book.attributes._id。 所以一切都设定好了。 但我似乎无法启动删除请求。 请告诉我哪里错了。 我在这里错过了什么?

我的后端路由器被定义为这样来处理删除请求。

app.delete('/api/books/:id', function(req, res){...});

尝试设置id属性使用idAttribute这对你的情况(mongodb)是_id 。 这是由服务器设置的ID。

 library.BookModel = Backbone.Model.extend({ urlRoot: '/api/books', idAttribute: '_id', defaults: { imageurl: 'noimage.jpg', } }); 

Backbone在客户端自动设置的id是cid而不是id。 可以使用cid,直到模型在服务器上同步并获取服务器ID。