Backbone.js 模型.destroy未触发DELETE请求

6rqinv9w  于 2022-11-10  发布在  其他
关注(0)|答案(1)|浏览(123)

这是我的模型。

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){...});

ffvjumwh

ffvjumwh1#

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

library.BookModel = Backbone.Model.extend({

    urlRoot: '/api/books',

    idAttribute: '_id',

    defaults: {
        imageurl: 'noimage.jpg', 
    }

});

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

相关问题