私はそれができることをよく知っており、かなりの数の場所を見てきました(コレクション全体を保存するためのベストプラクティス?)。しかし、それがコードで「正確にどのように」書かれているのかはまだわかりません。(投稿は英語で説明しています。javascript固有の説明があると便利です:)
モデルのコレクションがあるとします。モデル自体にネストされたコレクションがある場合があります。親コレクションのtoJSON()メソッドをオーバーライドし、有効なJSONオブジェクトを取得しています。コレクション全体(対応するJSON)を「保存」したいのですが、バックボーンにはその機能が組み込まれていないようです。
var MyCollection = Backbone.Collection.extend({
model:MyModel,
//something to save?
save: function() {
//what to write here?
}
});
私はあなたが言わなければならないどこかを知っています:
Backbone.sync = function(method, model, options){
/*
* What goes in here?? If at all anything needs to be done?
* Where to declare this in the program? And how is it called?
*/
}
'view'が処理を完了すると、コレクションにサーバー上でそれ自体を「保存」するように指示する責任があります(一括更新/作成要求を処理できます)。
発生する質問:
- 「すべてを一緒に配線する」ためのコードをどのように/何を書くか?
- コールバックの「正しい」場所と、「成功/エラー」コールバックを指定する方法は何ですか?構文的に意味しますか?バックボーンにコールバックを登録する構文がわかりません...
それが本当にトリッキーな仕事である場合、ビュー内でjQuery.ajaxを呼び出して、this.successMethod
またはthis.errorMethod
成功/エラーコールバックとして渡すことができますか?それは機能しますか?
バックボーンの考え方と同期する必要があります-コレクション全体の同期という何かが間違いなく欠けていることはわかっています。