为了账号安全,请及时绑定邮箱和手机立即绑定

如何覆盖Backbone.sync?

如何覆盖Backbone.sync?

catspeake 2019-08-30 11:04:57
我正在尝试Backbone.js,我正在尝试的其中一件事是调用远程API,所以我需要能够覆盖Backbone.sync,因为我理解文档。在文档本身中没有一个如何做到这一点的例子,并且似乎没有一个用于Backbone的谷歌组...有人可以指出这样做的一个例子吗?
查看完整描述

3 回答

?
慕田峪4524236

TA贡献1875条经验 获得超5个赞

看看这个带注释的源示例,它们Backbone.sync用localstorage替代它们


骨干,localStorage的


基本上Backbone.sync应该是一个带有4个参数的函数:


Backbone.sync = function(method, model, options) { };

你需要解雇options.success或options.error取决于是否method成功。方法的格式如下:


"create" :期望您在服务器上创建模型

"read" :期望您从服务器读取此模型并将其返回

"update" :期望您使用参数更新服务器上的模型

"delete" :期望您从服务器中删除模型。

您需要实现这4种方法并定义您想要的任何方法 "server"


当然,这些只是Backbone.sync 必须实施的事情。你可以实施更多methods,你可以将更多的参数传递回去,success但最好不要这样做。


最好确保它与Backbone.sync当前相同,以便您对接口进行编程,而不是实现。如果你想将你的修改版本改为Backbone.synclocalStorage,你不必自己扩展它以匹配扩展的Backbone.sync“


[编辑]


另请注意,您可以使用多个实现sync。每次引用Backbone.sync都是行动的,(this.sync || Backbone.sync)所以你只需要做一些事情:


var MyModel = Backbone.Model.extend({ 

    ...


    "sync": myOwnSpecificSync,


    ...

});

Backbone.sync除非模型具有sync专门设置的方法,否则它只是所有模型使用的默认全局模型。


查看完整回答
反对 回复 2019-08-30
  • 3 回答
  • 0 关注
  • 396 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信