我正在尝试Backbone.js,我尝试的其中一件事是调用远程API,因此我需要能够覆盖Backbone.sync,因为我理解the documentation。
在文档本身中没有一个如何做到这一点的例子,而且似乎也没有针对Backbone的google组……有人能举出一个这样做的例子吗?
发布于 2013-03-12 16:41:42
我知道这个答案有点晚了,@Raynos的答案很好,但我用了一点不同的方式,也许它会对你或任何其他试图使用有骨干网API的人有用。
我没有覆盖Backbone.sync,而是覆盖了Backbone.ajax,因为它是发出ajax请求的地方。
下面是一个例子:
// 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);
};
发布于 2013-09-17 07:53:06
当我只需要同步某些属性时,我通常需要覆盖backbone的sync
方法。典型的实现如下所示:
sync: function (method, model, options) {
options.data = _.pick(this.attributes, 'foo', 'bar', 'baz');
return Backbone.sync.call(this, method, model, options);
}
https://stackoverflow.com/questions/5096549
复制相似问题