2

バックボーンリレーショナルの includeInJSON: 'id' を使用して、関連するモデル ID のみを含め、サーバー側でオブジェクト ツリー全体をスパムするのを回避します。残念ながら、Backbone.Marionette.View はデフォルトで toJSON によって返されるビュー モードの属性のみを公開します。つまり、関連するモデルはビュー テンプレートでアクセスできなくなります。

カスタムの Marionette.View serializeData が必要なことに気付きました。これはほぼすべてのモデルで必要になるため、これを一般的に解決したいと考えています。つまり、すべてのビューの serializeData をオーバーライドして、バックボーン リレーショナル ID 参照で正しいことを行うようにします。

誰かがすでにこれを行っている可能性はありますか?私はそれについてあまり期待していませんが、これを使用できる他の人がいると考えています。:)

どのソリューションにも、次のいずれかのオプションが必要です。

  1. モデルの toJSON の 2 つのバージョンを定義します。1 つは includeInJSON を使用し、もう 1 つは常に true として扱います。

  2. モデル属性と属性ベースのヘルパーのみを使用して、ビュー テンプレートに対する Marionette の制限に穴を開ける方法。

4

1 に答える 1

0

オプション#1を使用して機能的なソリューションを手に入れましたが、それを公開するのに耐えられないほどのハックです。基本的に、serializeData ではモデルに到達し、toJSON の呼び出しの前後で _relations を変更しています。スレッドセーフではなく、醜いです。すぐに戻ってきて、適切な解決策を見つけることを望んでいます。

于 2012-06-27T19:42:50.763 に答える