我正在尝试Backbone.js,而我正在尝试的事情之一就是调用远程API,因此,据我所知the documentation,我需要能够覆盖Backbone.sync。
在文档本身中没有如何执行此操作的示例,并且似乎没有用于Backbone的google组...有人可以指出执行此操作的示例吗?
最佳答案
看一下这个带注释的源代码示例,在该示例中,他们使用本地存储替代项覆盖Backbone.sync
backbone-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
当前所做的相同,以便您对接口(interface)进行编程,而不是对实现进行编程。如果您要退出修改后的Backbone.sync
以说localStorage,则无需自己扩展它即可与扩展Backbone.sync相匹配”[编辑]
还要注意,您可以使用
sync
的多种实现。每个对Backbone.sync
的引用实际上都是(this.sync || Backbone.sync)
,因此您只需要执行以下操作即可:var MyModel = Backbone.Model.extend({
...
"sync": myOwnSpecificSync,
...
});
Backbone.sync
只是所有模型都使用的默认全局变量,除非模型具有专门设置的sync
方法。关于javascript - 如何覆盖Backbone.sync?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5096549/