2016-09-22 27 views
4

Angular2公式ページのTour-of-Heroチュートリアルに従ってきました。しかし、モジュールの遅延読み込みを導入することでさらに進歩しました。遅延ロードされたモジュールから別の遅延ロードされたモジュールにコンポーネントをインポートする

私は、次の機能モジュールに持って

  • モジュールDashboard

    • ダッシュボードコンポーネント
  • モジュールHero

    • 主人公リスト成分
    • 主人公ディテール成分
    • 主人公-検索コンポーネント
    • 主人公検索サービス
    • 主人公モデル

主人公検索成分でありますDashboard Moduleで使用するディレクティブ。

しかし、Angular2アーキテクチャについては、this documentationによると、ルートモジュールは他社からインポートするべきではありません。つまり、HeroモジュールをDashboardモジュールにインポートするべきではありません。私の場合、私のルートはもはや働いていません。また、ヒーロー・検索コンポーネントがヒーロー・サービス英雄モデルを使用しています

、そうそれはそれは難しい外部化すること、ヒーローモジュールに強い依存関係を持っています。

Dashboardコンポーネントでヒーロー検索コンポーネントを使用するにはどうすればいいですか?

+0

サム、あなたはすでにこの問題の解決策を見つけましたか?私は同じ問題で苦労している。 – Nico

+0

いいえ、私はこれについての正しいアプローチが何であるか分かりません。 John PapaのngModuleチュートリアルを楽しみにしています。 – Sam

答えて

2

あなたは、第3のモジュールを作るのはUtilityModuleそれを呼びましょう、そこからの輸出HeroSearch、その後DashboardModuleHeroModuleUtilityModuleをインポートすることができます。これにより、両方のモジュールでHeroSearchコンポーネントを使用できるようになります。

@NgModule({ 
    imports: [ ... ], 
    declarations: [ ... ], 
    exports: [ HeroSearch ] 
}) 

export class UtilityModule { } 
+0

Stefan、私はそれを考えましたが、HeroSearchComponentはHeroSearchServiceとHeroモデルに強い依存関係があります。私はそれに応じて自分の投稿を更新しました。これはSharedModule(またはUtiltyModule)に入れにくいです – Sam

+0

@Sam 'HeroSearch'の必要な依存関係を' UtilityModule'にも移動させてみませんか? –

+0

ヒーロー・モデルやヒーロー・サービスは、実際にはヒーロー・モジュールにあるべきであり、共有モジュールには存在しないからです。この問題は私の意見では根本的な問題であるため、このチュートリアルのAngularチームが対応していないことに驚いています。私は、遅延ロードされたモジュールの特定のコンポーネントを別のモジュールにインポートする必要がある多くのユースケースを見ることができます。 – Sam

0

私はあなたがそれを行うことはできません。遅延ルーティングされたモジュールは、独立したアプリのように機能します。したがって、そこに宣言されているものは、そのモジュールのスコープ内でのみ使用されるべきです。それについて考える。ダッシュボードをロードすると、あなたの怠惰なヒーローモジュールがまだロードされていないことが決して分かりません。だから、まだ読み込まれていないかもしれないモジュールから何かを使いたいのですか?

多分私は間違っているかもしれませんが、私は彼らが成功していないドキュメントで私たちに示したよりも複雑なモジュール構造を設計しようとしています。私は本当にこのモジュールシステムが悪いラッシュデザインの一例だと思っています。それと幸運。

関連する問題