如何覆盖Backbone.sync?

我正在尝试Backbone.js,我正在尝试的其中一件事是调用远程API,所以我需要能够覆盖Backbone.sync,因为我理解文档。


在文档本身中没有一个如何做到这一点的例子,并且似乎没有一个用于Backbone的谷歌组...有人可以指出这样做的一个例子吗?


catspeake
浏览 396回答 3
3回答

慕田峪4524236

看看这个带注释的源示例,它们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专门设置的方法,否则它只是所有模型使用的默认全局模型。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript