gpt4 book ai didi

javascript - 全局监听 Backbone.js Model.save

转载 作者:行者123 更新时间:2023-12-02 06:37:44 25 4
gpt4 key购买 nike

我想在 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com