0

何が間違っているのか理解できません。成功とエラーのコールバックが発生せず、サーバーから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.');
        }
    })
};
4

2 に答える 2

0

次の行

this.model = new mysite.city.delete_photo.Model(id);

次のようにする必要があります。

this.model = new mysite.city.delete_photo.Model({'id':id});

最初のケースIdでは、 はモデルにまったく設定されておら ず、 はサーバーにリクエストをdestroy送信することさえせずに false を返します。これは、モデルに がなく、 と見なされるためです。DELETEIDnew

http://backbonejs.org/#Model-destroy

于 2013-03-22T18:23:56.800 に答える
0

successorerrorは Model の関数ではありませんが、どちらも Model の fetch メソッドと save メソッドのコールバックです。ブローコードでフェッチするときに、成功またはエラーイベントを発生させることができます:

model.fetch({success: function(model, response, options) {
    console.log('success triggered');
});

コールバックと同じロジックerror

于 2013-03-22T13:49:48.740 に答える