这是我的模特。
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){...});
答案 0 :(得分:16)
尝试使用idAttribute设置id属性,对于您的情况(mongodb)是_id
。这是服务器设置的ID。
library.BookModel = Backbone.Model.extend({
urlRoot: '/api/books',
idAttribute: '_id',
defaults: {
imageurl: 'noimage.jpg',
}
});
Backbone在客户端上自动设置的ID是cid而不是id。可以使用cid,直到模型在服务器上同步并获得服务器ID。