我正在尝试Backbone.js,而我正在尝试的事情之一就是调用远程API,因此,据我了解的文档资料,我需要能够覆盖Backbone.sync 。
在文档本身中没有如何执行此操作的示例,并且似乎没有用于Backbone的google组…有人可以指出执行此操作的示例吗?
看看这个带注释的源示例,在该示例中,它们被Backbone.sync本地存储替代项覆盖
Backbone.sync
基本上,Backbone.sync应该是一个带有4个参数的函数:
Backbone.sync = function(method, model, options) { };
您需要解雇,options.success或者options.error取决于是否method成功。这些方法的格式为:
options.success
options.error
method
"create"
"read"
"update"
"delete"
您需要实现这4种方法并定义所需的内容 "server"
"server"
当然,这些只是Backbone.sync 必须 执行的事情。您可以实施更多的东西methods,也可以将更多的参数传递回去,success但最好不要这样做。
methods
success
最好确保它与Backbone.sync当前功能相同,以便您对接口进行编程,而不是对实现进行编程。如果您想将修改后Backbone.sync的内容说出来,例如localStorage,则无需自己扩展以匹配扩展后的Backbone.sync。
[编辑]
另请注意,您可以使用的多种实现sync。每个引用Backbone.sync都是准确的,(this.sync || Backbone.sync)因此您只需要执行以下操作即可:
sync
(this.sync || Backbone.sync)
var MyModel = Backbone.Model.extend({ ... "sync": myOwnSpecificSync, ... });
Backbone.sync只是所有模型都使用的默认全局变量,除非模型有sync专门设置的方法。