model.save设置网址并在成功时回拨

时间:2013-04-19 21:11:16

标签: javascript backbone.js model callback

我正试图让这种方法起作用:

that.model.save(null,  // I'm calling that.model because this is nested in another method
{
   url: 'some url',

    success: function(model, response) {
        // update stuff
    }, 
    error: function(model, response) {
        // throw error. 
    }
}); 

但由于某种原因,它不会调用成功方法或错误方法。 评论我在哪里我正在调用方法...我不想深入了解我正在调用的所有方法的细节。另外save方法有效,它只是不调用那些方法的eater。

如果我尝试并且只是调用我执行的方法,那么:

success: that.somemethod()

javascript throws:未捕获TypeError:非法调用

任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:1)

该方法看起来很好,因为它使用与Backbone描述的相同的参数:

model.save([attributes], [options])

最有可能的情况是,您的成功/错误处理程序在原型链的某个位置被覆盖,而不是调用您的处理程序。

答案 1 :(得分:1)

首先,您必须绑定实例方法,然后将其分配给成功

that.model.save(null,  // I'm calling that.model because this is nested in another method
{
    url: 'some url',

    success: _.bind(that.mySuccessMethod, that), 
    error:   _.bind(that.myErrorMethod, that)
});