【问题标题】:Backbone: calling a success with a custom sync methodBackbone:使用自定义同步方法调用成功
【发布时间】:2013-04-15 14:19:18
【问题描述】:

我的backbone.js 应用程序中有一个自定义的sync 方法。我的所有模型都调用此方法,但由于我在此方法中覆盖了success,因此不再调用来自各个模型的成功方法。这就是我的意思 - 下面是我的自定义同步方法:

app.customSync = function(method, model, options) {
    var success = options.success,
        error = options.error,
        customSuccess = function(resp, status, xhr) {
            //call original, trigger custom event
            if(con)console.log('in custom success');
            success(resp, status, xhr);
        },
        customError = function(resp, status, xhr) {
            if(con)console.log('in custom error');
            error(resp, status, xhr);
        };
    options.success = customSuccess;
    options.error = customError;
    Backbone.sync(method, model, options);
};
Backbone.Model.prototype.sync = app.customSync;

这是我尝试从模型保存中调用成功的示例:

this.model.save({
    success:function(model, response){
         if(con)console.log('this is never called');
    }
});

有谁知道我如何仍然可以与自定义成功方法进行自定义同步,并从我的个人保存中调用成功?

作为旁注,我尝试在model.save 中调用success msuccess,但msuccess 在自定义同步中未定义。

【问题讨论】:

  • 我可能误解了您要查找的内容,但它似乎可以正常工作 jsfiddle.net/nikoshr/XwfTB
  • @nikoshr 我没有像在 jsfiddle 中那样在保存中放置一个空对象。如果你把它放在答案中,我可以接受。

标签: javascript backbone.js callback


【解决方案1】:

Model.save 的第一个参数是您希望修改的属性的哈希值,选项位于第二个并保存成功/错误回调。

试试

this.model.save({}, {
    success: function() {
        console.log('save success');
    }
});

还有一个在工作中看到这个的小提琴http://jsfiddle.net/nikoshr/XwfTB/

【讨论】:

    猜你喜欢
    • 2016-05-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-03
    • 2015-11-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多