12

バックボーン.jsのDELETEリクエストを起動しようとしていますが、コンソールでリクエストが行われていません。

私はそのようなコレクションモデルを持っています:

var Model = Backbone.Model.extend(
{
    urlRoot: '/test',
    defaults:{}
});

var TableList = Backbone.Collection.extend(
{
    url: '/test',
    model: Model
});

私の見解では、私はこれを実行しています:

this.model.destroy();

すべてが正常に実行されているようです。destroyを呼び出すremove関数からの出力を確認できるので、そこに到達していることがわかります。さらに、私が持っているunrenderメソッドも正常に実行されます。しかし、サーバーに対して行われている要求を確認できませんか?

4

3 に答える 3

14

私が間違っていない場合は、モデルにidプロパティを設定して、正しいURLに確実にヒットするようにする必要があります。モデルが...だった場合はIE

var Model = Backbone.Model.extend({
    url: '/some/url'
});

var model = new Model({
    id: 1 
});
model.destroy(); // I THINK it will now try and DELETE to /some/url/1

IDがないと、URLを正しく作成する方法がわかりません。通常、モデルをフェッチするか、新しいモデルを作成して保存すると、URLが作成されます...

それが役立つかどうかを確認してください!

于 2012-05-25T03:23:34.053 に答える
4

私は自分の問題の問題を見つけましたが、まだ解決策ではないと思いました。これがバックボーンのバグかどうかはわかりませんが、とを使用ajaxSetupしてajaxPrefilterいます。コメントアウトしてみたところ、うまくいきました。私はそれをajaxSetupメソッドに絞り込み、具体的にはdataいくつかの値をプリセットするためのパラメーターの使用に絞り込みました。

于 2012-05-25T17:09:20.777 に答える
1

成功とエラーのコールバックを使用してみましたか?

this.model.destroy({
    success : _.bind(function(model, response) {
                  ...some code
              }, this),
    error : _.bind(function(model, response) {
                  ...some code
              }, this);
});

DELETEリクエストが表示されない場合は、参考になる可能性があります。

于 2012-05-24T21:50:02.000 に答える