1. ホーム
  2. javascript

[解決済み] Backbone.syncをオーバーライドするには?

2022-05-13 07:09:49

質問

私はBackbone.jsを試しています。私が試していることの1つは、リモートAPIに呼び出しを行うことです。 ドキュメント .

ドキュメント自体にはその方法の例はありませんし、Backboneのためのgoogleグループもないようです...誰かこれを行うための例を指摘してくれますか?

どのように解決するのですか?

このアノテーションされたソースの例を見てみましょう。 Backbone.sync をローカルストレージの代替とする

バックボーン-ローカルストレージ

基本的にBackbone.syncは4つの引数を取る関数であるべきです。

Backbone.sync = function(method, model, options) { };

のいずれかを起動する必要があります。 options.success または options.error を使用するかどうかによって method が成功しました。メソッドの形式は

  • "create" : サーバ上でモデルを作成することを想定しています。
  • "read" このモデルをサーバーから読み込んで返すことが期待されます。
  • "update" 引数でサーバ上のモデルを更新することが期待されます。
  • "delete" : サーバからモデルを削除することが期待されます。

この4つのメソッドを実装し、自分の好きなように "server"

もちろん、これらはあくまでも Backbone.sync しなければならない を実装します。さらに実装することができます methods に渡すパラメータを増やすことができます。 success が、これはやらないほうがいい。

と同じ動作をするようにするのがベストです。 Backbone.sync を使用することで、実装ではなくインターフェースに対するプログラミングを行うことができます。もし、変更した Backbone.sync を、例えばlocalStorageのように、拡張したBackbone.sync"に合わせて自分で拡張する必要がありません。

編集

の複数の実装を使用できることにも注意してください。 sync . すべての Backbone.sync は、実際には (this.sync || Backbone.sync) というようなことをすればいいのです。

var MyModel = Backbone.Model.extend({ 
    ...

    "sync": myOwnSpecificSync,

    ...
});

Backbone.sync はデフォルトのグローバルなもので、モデルが sync メソッドが特別に設定されています。