0

我正在尝试使这种方法起作用:

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 方法也有效,它只是不调用这些方法的食者。

另外,如果我尝试调用我已经做过的方法,例如:

success: that.somemethod()

javascript 抛出:未捕获的类型错误:非法调用

任何帮助将不胜感激。

4

2 回答 2

1

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

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

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

于 2013-04-20T05:19:14.810 回答
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)
}); 
于 2013-04-21T06:58:03.477 回答