如何使用Backbone.js,但是采用NO-RESTful方式?

Dan*_*Woo 17 javascript backbone.js web

我现在是一名前端开发人员,我有一个可以使用BackboneJS的项目,服务器端是由其他人编写的.是否有人可以告诉我如何以非RESTful方式覆盖删除,更新,添加等?服务器端的URL可能如下所示:

  • 加: www.domain.com/addBookById
  • 去掉: www.domain.com/removeBookById

非常感谢!!

mu *_*ort 19

Backbone用于Backbone.sync管理与服务器的所有通信.sync对你来说有两件重要的事情; 首先,它看起来像这样:

Backbone.sync的方法签名是sync(method, model, [options])

  • 方法 -该方法CRUD( ,"create","read","update""delete")
  • model - 要保存的模型(或要读取的集合)
  • options - 成功和错误回调,以及所有其他jQuery请求选项

第二个是你可以sync在每个模型和每个集合的基础上覆盖.因此,您可以将自己的sync实现添加到模型中:

var M = Backbone.Model.extend({
    sync: function(method, model, options) {
        //...
    },
    //...
});
Run Code Online (Sandbox Code Playgroud)

如果您查看,method您可以决定使用哪个URL以及您是否正在执行GET,POST,...请求.该model会告诉你什么样的数据发送到服务器.您需要合并options$.ajax要使用的选项中.看看标准的实现Backbone.sync,它非常简单,应该向您展示您需要做什么:只需替换URL处理并删除一些您不关心的功能(例如emulateHTTPemulateJSON).