0

私はバックボーンに不慣れで、削除コマンドを送信しようとしています。変更後のオプションを使用していますが、削除はメソッドのみを送信します。以下の例:

    Backbone.emulateHTTP = true;
    Backbone.emulateJSON = true;
    ProductImageModel = Backbone.Model.extend({

            initialize : function() {
            },

            url : "/products/ajaximage",
        });
    //Later called using
    var image = new ProductImageModel({id: id});
    image.destroy();

問題は、id が渡されないことです。 $_POST に表示されるのは次のとおりです。

Array
(
    [_method] => DELETE
)

削除でIDを渡す方法はありますか?

4

1 に答える 1

2

注釈付きのソースを確認し、コードを確認すると...Model.urlメソッドを静的プロパティでオーバーライドしています。メソッドは次のBackbone.Model.urlようになります。

url: function() {
    var base = getValue(this, 'urlRoot') || getValue(this.collection, 'url') || urlError();
    if (this.isNew()) return base;
    return base + (base.charAt(base.length - 1) == '/' ? '' : '/') + encodeURIComponent(this.id);
}

モデルが新しいかどうかに基づいて、その場で URL を生成します。

プロパティをにデフォルト設定する代わりに、あなたがすべきことは、Model.urlプロパティを'/products/ajaximage'にデフォルト設定するModel.urlRootこと'/products/ajaximage'です。これにより、サーバーへのリクエスト URL の一部としてモデルの ID を実行Model.destroy()して取得できるようになるため、どのモデルを削除する必要があるかがわかります。

于 2012-05-16T12:33:02.697 に答える