我对Backbone相当新,并且正在为网站创建一些基本API。但是,我遇到了一个问题,我还没有找到解决办法。
在我的前端,我有一个名为Item的Backbone Model,它有一个urlRoot:“/ item”。现在这个urlRoot被Backbone用来向服务器发送不同的HTTP请求吗?因此,如果我的主干模型使用Item.fetch(),它将发送一个GET请求,而Item.save()可能会发送一个POST请求。
我的后端有一堆监听器函数来处理不同的情况,如“/ createItem”,“/ updateItem”,“deleteItem”等。可以使用提供的基本urlRoot处理所有这些吗?或者我必须具体说明明确发出什么路线?
答案 0 :(得分:0)
如果您想遵循默认的方式,您的后端不应为每个CRUD操作使用不同的名称。它应该使用你使用模型的rootUrl + / id指定的url,并且应该为该单个URL处理HTTP POST,GET,PUT或DELETE(除了POST URL没有附加/ id)。 / p>
答案 1 :(得分:0)
由于您使用的是非常规的休息端点集,因此您需要为模型提供自定义同步方法:
sync : function(method, model, options) {
if (method === 'read') {
this.baseUrl = '/item';
return Backbone.sync.apply(this, arguments);
} ...
}