首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何覆盖Backbone.sync?

如何覆盖Backbone.sync?
EN

Stack Overflow用户
提问于 2011-02-24 04:16:09
回答 2查看 60.5K关注 0票数 146

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

在文档本身中没有一个如何做到这一点的例子,而且似乎也没有针对Backbone的google组……有人能举出一个这样做的例子吗?

EN

回答 2

Stack Overflow用户

发布于 2013-03-12 16:41:42

我知道这个答案有点晚了,@Raynos的答案很好,但我用了一点不同的方式,也许它会对你或任何其他试图使用有骨干网API的人有用。

我没有覆盖Backbone.sync,而是覆盖了Backbone.ajax,因为它是发出ajax请求的地方。

下面是一个例子:

代码语言:javascript
复制
// Set the default implementation of `Backbone.ajax` to proxy through to `$`.
Backbone.ajax = function() {
    var args = Array.prototype.slice.call(arguments, 0);

    // Here, I add the OAuth token (or any other token)
    // But before, I check that data exists, if not I add it
    if (args[0]['data'] === undefined) {
        args[0]['data'] = {};
    }
    args[0]['data']['token'] = 'any_api_token_here';

    return Backbone.$.ajax.apply(Backbone.$, args);
};
票数 15
EN

Stack Overflow用户

发布于 2013-09-17 07:53:06

当我只需要同步某些属性时,我通常需要覆盖backbone的sync方法。典型的实现如下所示:

代码语言:javascript
复制
sync: function (method, model, options) {
  options.data = _.pick(this.attributes, 'foo', 'bar', 'baz');
  return Backbone.sync.call(this, method, model, options);
}
票数 11
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5096549

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档