開いているBackbone.jsのシングルページアプリケーションやデモのほとんどは、1つまたは2つの異なるリソースを処理しているようで、通常は最初にページを読み込むときに質問のコレクションを埋め込みます。Backbone.jsパターン:複数のリソースを読み込むタイミング
どのようにして、複数の(2つ以上の)異なるリソースにデータをリモートで格納しているのですか?あなたはいつコンテンツを読み込みますか?
レール開発者に馴染みの音べき例:
current_user
オブジェクトが存在し、Project
、Team
、Task
とInvoice
モデルにhas_many
関連を有します。私のクライアントサイドのアプリは、これらのモデルにいくつかの種類のCRUD機能を提供しています。多分、さまざまなビューと対応するルートを持つものなど、接続するための追加のビューかもしれません。 ユーザーは、これらのルートのいずれかに、たとえばリンクを貼り付けるには、/#project/34/invoices
としましょう。この場合、ID 34のプロジェクトとこのプロジェクトに関連付けられた請求書が読み込まれている必要があります。
1つのアプリ内でこのようなケースが多く簡単に終了する可能性があるため、どのようにこの問題を解決しますか?あなただけの私にはきれいないないようだ、またはあなたが常にあなたが必要なものをロードするために巧妙な方法を持っていない、最初は
current_user: {
projects: {
invoices: {…},
tasks: {…}
tasks: {…}
…
}
すべてロードされていますか?
乾杯!
ありがとう:この私がフェッチまたはこれが一定時間行われていない場合は、コレクションのためのデータを「リフレッシュ」することができますよう 基本的にすべてのコントローラーアクションでデータをロードしていますか?基本的には – polarblau
ですが、UIでデータを更新/変更することができるため、モデルをそのまま使用しています。私は正直にこれが正しいことだとは思わない。私がやっていることは、物事が変わると状態を記録することです。例:インターフェイスの[タブを追加]ボタンをクリックすると、tab_controller createメソッドが呼び出され、新しいTab Modelインスタンスが作成され、サーバーと同期されます。成功すると、新しいタブビューがレンダリングされます。 –
破壊すると、コントローラの破壊メソッドが呼び出され、ローカルモデルを取得し、それをサーバと同期させます(サーバ上でそれを破壊します)。それが成功すれば、ビュー自体も破壊されるように呼び出されます。私は、Railsが物事を単純かつ簡潔に保つために行っていることに近い流れを保つようにしました。 –