2011-06-21 7 views

答えて

62

fetchはJquery.ajaxパラメータをサポートしているので、コールでtype = postを簡単に設定できることにも注意してください。より多くのパラメータについては

Messages.fetch({data: {api_key: 'secretkey'}, type: 'POST'}); 

http://api.jquery.com/jQuery.ajax/

+0

私は信じて...私は0.3.3を当時使用していた – mike

+2

これは、標準のPOST要求を行うことに注意してください。 –

2

フェッチのための独自の規則をインストールするには、Collectionオブジェクトを拡張する必要があります。そうすることで、独自のフェッチ機能を提供する可能性が高くなります。次のようなものがあります。

ここで、「読み取り」ではなく「作成」を使用します。最初の赤面で、これは私が最初にやってみたいことですが、それを行うもっとエレガントな方法があるかもしれません。

このアプローチの欠点は、基本的にアプリケーションにフレームワークコードがあることです。フレームワークが変更された場合、問題が発生する可能性があります。新しいフレームワークリリースで簡単に更新できるように、この変更を別々のレイヤーに分割することをお勧めします。

+0

しかし、私はそれは私がコレクションの同期方法を作成することができることを見つけ出す手助けでしたが、このルートに行かなかった、特にそのように感謝し、 +1! – mike

+0

まあ、ありがとう。上記の1行だけが変化し、その行送りが同期していることを考えれば、カスタム同期を書き留めるのが最善の方法です。私は、同じアプリケーション空間で異なる同期があるかもしれないことに気がつかなかったが、今は理にかなっている。その可能性に私の心が開いていたので、私はこれに答えることを試みたことのアップフォークよりはるかに優れています。 –

2

Backbone.syncは、モデルを介してサーバーとやりとりするために使用される関数です。 GETの代わりに 'read'メソッドのPOSTリクエストを発行する独自の実装を提供することができます。 http://documentcloud.github.com/backbone/#Sync

+0

私はもともとこのアプローチをとろうとしていました。私は私のアプリケーション全体のためにBackbone.syncを上書きしたくなかった...それから私は自分の同期方法であるコレクションを与えることができることに気づいたので、私はそのルートに行った。ありがとう.. 012+と来た – mike

1
try { 
    // THIS for POST+JSON 
    options.contentType = 'application/json'; 
    options.type = 'POST'; 
    options.data = JSON.stringify(options.data); 

    // OR THIS for GET+URL-encoded 
    //options.data = $.param(_.clone(options.data)); 

    console.log('.fetch options = ', options); 
    collection.fetch(options); 
} catch (excp) { 
    alert(excp); 
} 
関連する問題