这是我的问题。
我正在使用 Backbone js,我定义的每个集合都需要对保存或销毁进行相同的检查。除了销毁成功函数需要传递一个元素以在销毁成功时从页面中删除。
我不想将相同的代码复制并粘贴到每个保存或销毁方法中,所以我创建了这个:
window.SAVE_TYPE_DESTROY = 'destroy';
window.SaveResponseHandler = function(el,type){
if (!type){
this.success = function() {
this._success();
};
}else if (type == window.SAVE_TYPE_DESTROY){
this.success = function() {
this._success();
$(el).remove();
};
}
};
SaveResponseHandler.prototype._success = function(model, response, options) {
if ((response.success * 1) === 0) {
persistError(model, {
responseText: response.message
}, {});
}
};
SaveResponseHandler.prototype.error = persistError;
var saveResponseHandler = new SaveResponseHandler();
我像这样使用它:
destroy: function() {
var el = this.el;
var model = this.model;
this.model.destroy(new SaveResponseHandler(el,'destroy'));
},
change: function() {
this.model.set({
job_category_name: $($(this.el).find('input')[0]).val()
});
var viewView = this.viewView;
this.model.save(null, saveResponseHandler);
}
问题是当调用成功时出现以下错误:
未捕获的类型错误:对象 [对象窗口] 没有方法 '_success'
任何帮助都感激不尽。我也愿意接受有关更好的处理方法的任何建议。