我想在 Backbone 的原生 Model.save()
方法中附加一个记录成功和错误的自定义日志记录方法。我知道在每个模型的基础上,我可以这样称呼:
myModel.save().success(function() {
// do something cool
});
但不是调整对各种模型的保存事件的每次调用,我想简单地监听 any 模型上的保存事件。我想我想避免的一种方法实际上是修改 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;
默认情况下,Model.sync 和 Collection.sync 都代理到 Backbone.sync,因此如果您使用默认同步,此更改会处理它。
关于javascript - 全局监听 Backbone.js Model.save,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14530496/