EmberJS: 単一ルートで複数のモデルをロードする
開発者は、EmberJS の取り組みを開始する際に、無関係な複数のモデルをロードするという課題に遭遇する可能性があります。同じルート上にあります。この問題に対処する方法は次のとおりです。
ルートを検討します
まず、ルートがスラッグ パラメータ「:id」に基づいてデータを動的にロードするかどうかを評価します。その場合は、モデル フックに複数のモデルをロードしないでください。なぜ?モデルを使用してそのようなルートにリンクすると、Ember はモデル フックを無視するためです。
モデル フックの代替
-
SetupController/afterModel: これらのフックに追加のモデルをロードします。待機が必要な場合は、afterModel から Promise を返し、setupController.
-
Ember Data: 内で結果を手動で管理します。モデル フックで store.find('resource') を使用します。 Ember Data は非同期インタラクションを自動的に処理します。
非動的ルートの処理
ルートがパラメータに基づいてデータを動的に読み込まない場合は、次のようになります。オプション:
-
モデル フック内の複数のモデル: 複数のモデル キーと値を持つオブジェクトを返します。
-
RSVP ハッシュ: ロードEmber.RSVP.hash({ modelKey: Promise/value, ... }).
-
Mix and Match: RSVP ハッシュと非 Promise を組み合わせる
追加の考慮事項
- モデルのブロックが必要な場合は、他のメソッドを使用するだけでなく、afterModel から Promise を返します。 .
- セットアップ コントローラーは、依存関係の設定など、モデルをさらに変更したり関連付けたりするために使用できます。
- これらの手法はルート固有であり、ネストされたルートには適用されないことに注意してください。
以上が質問と回答の形式に適合し、記事の内容を正確に反映するいくつかのタイトル オプションを次に示します。
オプション 1 (問題に焦点を当てる):
* EmberJS: Si に複数のモデルをロードするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。