0

これを修正する方法について混乱しており、あなたの意見が欲しかった. アンダースコアのノードとブラウザの操作方法をモデルにしたライブラリを作成しました。コードの要約版は次のとおりです: https://gist.github.com/76121b90fb1ae392a4de

Mixin を使用して、特定のクラスの同期メソッドをオーバーライドしていることに注意してください。この場合は、Session クラスです。これは、一部のエンドポイントが安静ではなく JSON RPC であるため、別の方法で処理する必要があるためです (51 行目を参照)。

構成は MyLibrary のインスタンス化に渡されます (86 行目)。これらの構成変数は、window.mylibrary.area.jsproxi などとしてアクセスできます。それは問題ありません...問題は、 mixin.sync メソッド内からインスタンスの同じ属性にアクセスするエレガントな方法を理解できないことです (行 11 と 12 はこの例です)。

何か案は?インスタンス化後にライブラリ内から MyLibrary のインスタンスを取得する方法がわかりません。そして、この名前がどうなるかわからないため、window に付ける名前を使用できません。

どうもありがとうございました!

ルイス

4

1 に答える 1

0

まず、Backboneでミックスインを使用する方法について、次のソリューションを見てください。Backboneでビューミックスインを実行する適切な方法。これにより、これへの参照がいつでも正しいことが確認されます。

次に、モデルである新しいMyLibraryをインスタンス化します。

new MyLibrary({
  "area": {
    "ajax_synchronization_token": "sometoken",
    "jsproxy": "proxytoken"
  },
  "user": {
    "key": "somekey",
    "signature": "somesignature"
  }
});

そして、そのような値にアクセスすることを期待します:

this.area.ajax_synchronization_token,
this.area.jsproxy

これらの値に実際にアクセスしようとする方法は次のとおりです。

var area = this.get('area'); // it's a model after all
area.ajax_synchronization_token
area.jsproxy
于 2012-05-14T17:03:49.687 に答える