当前位置: 首页 > 面试题库 >

如何覆盖Backbone.sync?

汲利
2023-03-14
问题内容

我正在尝试Backbone.js,而我正在尝试的事情之一就是调用远程API,因此,据我了解的文档资料,我需要能够覆盖Backbone.sync

在文档本身中没有如何执行此操作的示例,并且似乎没有用于Backbone的google组…有人可以指出执行此操作的示例吗?


问题答案:

看看这个带注释的源示例,在该示例中,它们被Backbone.sync本地存储替代项覆盖

基本上,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.sync的内容说出来,例如localStorage,则无需自己扩展以匹配扩展后的Backbone.sync。

[编辑]

另请注意,您可以使用的多种实现sync。每个引用Backbone.sync都是准确的,(this.sync || Backbone.sync)因此您只需要执行以下操作即可:

var MyModel = Backbone.Model.extend({ 
    ...

    "sync": myOwnSpecificSync,

    ...
});

Backbone.sync只是所有模型都使用的默认全局变量,除非模型有sync专门设置的方法



 类似资料:
  • 问题内容: 我创建了一个自定义样式表,该样式表将覆盖Wordpress模板的原始CSS。但是,在我的日历页面上,原始CSS具有声明的每个表格单元格的高度: 有什么办法可以覆盖这个吗? 问题答案: 覆盖!important修饰符 只需使用添加另一个CSS规则,并赋予选择器更高的特异性(向选择器添加其他标签,id或类) 在比现有选择器晚的位置添加具有相同选择器的CSS规则(平局中,最后一个定义的获胜者

  • 问题内容: 我的模型有很多布尔字段。我将它们分为3组,将其渲染为。 现在,我需要将此数据保存回数据库。即,我需要将单个小部件返回的数据拆分为多个布尔列。我认为这适合该方法,不是吗? 问题是,我该怎么做?像这样吗 如果是这样,如何设置值? 或者其他的东西?所有数据都存储在哪里? 问题答案: 你要存储数据的位置是新模型实例:

  • 问题内容: 我有一个愚蠢的困惑,当我们重写父类方法时,此派生的重写方法是否仍保留父类方法的代码,或者这是我们可以定义的新方法? 问题答案: 阅读本文以使概念更清晰。http://docs.oracle.com/javase/tutorial/java/IandI/override.html 通常,当我们想要扩展超类的方法或想要更改完整的逻辑时,我们就会这样做。 例如: 超类具有使用冒泡排序的排序方

  • 问题内容: 我正在尝试从open jdk更改某些类,所以我正在创建与open jdk类相同的包结构,并且正在使用netbeans更改类。当我在构建项目时,如果覆盖类中出现问题,我会收到错误消息。如果成功构建了我的项目,则应用程序似乎不考虑我对类的更改,而是使用打开的jdk类。知道我该如何使用我的类而不是openjdk的类? 例: 如果我在项目中创建类 _sun.net.www.protocol.h

  • 问题内容: 我正在开发页面,现在以我的CSS样式我有以下代码行 为我的页面。现在,我的某些页面不需要此行 我可能会在页面的内部CSS中覆盖它,这将导致原始行为被忽略? 问题答案: 使用不推荐,但在这种情况下,我想你应该- 在您的内部CSS中编写此代码-

  • 问题内容: 我正在研究pypreprocessor,它是一种采用c样式指令的预处理器,而且能够使它像传统的预处理器一样工作(它是自耗的,并且可以即时执行后处理的代码),但它会破坏库进口。 问题是:预处理程序运行文件,对其进行处理,将其输出到一个临时文件中,然后执行exec()临时文件。导入的库需要有所不同,因为它们没有执行,而是被加载并可以被调用者模块访问。 我需要做的是:中断导入(因为预处理程序