mbe*_*ley 2 javascript events backbone.js
我想Model.save()使用自定义日志记录方法追加Backbone的本机方法,该方法记录成功和错误.我知道在每个型号的基础上我可以称之为:
myModel.save().success(function() {
// do something cool
});
Run Code Online (Sandbox Code Playgroud)
但是,我不想调整对各种模型的保存事件的每次调用,而是只想在任何模型上监听保存事件.我认为我想避免的Backbone.Model.prototype.save一种方法实际上是修改方法(尽管如果某人有一种优雅的方式来做到这一点,我会对它开放).
有关如何创建这样的事件监听器的任何想法?
如果所有模型/集合都使用默认的Backbone.sync方法,则可以创建新的同步方法来执行日志记录.
var originalSync = Backbone.sync;
var loggingSync = function(method, model, options) {
// call original Backbone.sync
var promise = originalSync(method, model, options);
promise.done(function() {
// if method is 'update' or 'create', log success
});
promise.fail(function() {
// if method is 'update' or 'create', log failure
});
return promise;
};
Backbone.sync = loggingSync;
Run Code Online (Sandbox Code Playgroud)
默认情况下,Model.sync和Collection.sync都代理到Backbone.sync,因此如果您使用默认同步,则此更改将处理它.