我无法弄清楚我做错了什么。我的成功和错误回调没有触发,我从服务器返回JSON响应。关于我搞砸的地方的任何想法?
mysite.city.delete_photo = {
"Model": Backbone.Model.extend({
"id": "deletePhoto",
"initialize": function initialize(id) {
this.url = "/assets/ajax/delete_image.php?img_id=" + id;
}
}),
"View": Backbone.View.extend({
"initialize": function initialize(id) {
_.bindAll(this,
"render",
"success");
this.model = new mysite.city.delete_photo.Model(id);
this.render();
},
"render": function render() {
this.model.destroy({
"cache": false,
"success": this.success,
"error": this.error
});
},
"success": function success(model, data) {
console.log("test");
},
"error": function error() {
message('error', 'This image could not be deleted.');
}
})
};
答案 0 :(得分:0)
success
或error
不是Model中的函数,但它们都是Model的fetch和save方法的回调。使用强制代码获取时,您可以触发成功或错误事件:
model.fetch({success: function(model, response, options) {
console.log('success triggered');
});
与error
回调相同的逻辑。
答案 1 :(得分:0)
以下行
this.model = new mysite.city.delete_photo.Model(id);
应该是:
this.model = new mysite.city.delete_photo.Model({'id':id});
在第一种情况下,Id
根本没有设置为模型,并且destroy
返回false,甚至没有向服务器发送DELETE
请求,因为模型没有ID
并被视为new
。