2017-01-24 3 views
0

これはダムと聞こえるかもしれませんが、モジュールを一度インポートしてすべての子モジュールで使用できるようにする方法があるかどうかを知りたいと思います。角2はモジュールをインポートせずに使用する

たとえば、すべてのモジュールでMaterialModuleを使用したいとします。現在、すべてのモジュールでインポートして宣言してから使用できます。

アプリモジュールにのみ書き出して書き出しましたが、効果がないようです。

私の質問はです。子モジュールで宣言せずに使用できるように、アプリケーションモジュールで宣言することは可能ですか?

+0

です。それらが複数のプロジェクトで使用できる再利用可能な断片である場合、正しいことはモジュールの依存関係を複数回指定することです。 – estus

答えて

1

モジュールに含まれる内容によって異なります。

たとえば角度からHttpModuleを取ります。ルートモジュールで一度だけインポートした後、アプリケーションのどこにでもHttpサービスを挿入することができます。それはサービス(とりわけ)と@NgModule.providersで宣言されたサービスがグローバルに注射可能であるからです。

あなたのモジュールは(私はMaterialModuleはない疑いがある)コンポーネント、ディレクティブなどが含まれている場合は、あなたは、これらのコンポーネント、ディレクティブ、などが使用されている任意のモジュール内で明示的にインポートする必要があります。

問題を軽減するためにできることは、アプリケーション全体で再利用されるすべての機能を再エクスポートするSharedModuleを作成することです。そうすれば、その1つのモジュールを共有機能を必要とする他のモジュールにインポートするだけで済みます。つまり、少なくともモジュールあたり1つのインポートを持っていることを意味します。しかし、それはおそらくあなたのすべてのモジュールにCommonModuleのようなものが必要なので、すでにそのケースです。 (私はこのSharedModuleテクニックは公式の文書がModule sectionで推奨するものだと信じています)。

+0

これは私が思ったものです。私はすでにサービスでsharedModuleを使用しているので、それを使うことができると分かっていましたが、コンポーネントで同じことをやってもらえました。インテルに感謝します。 – trichetriche

0

共有モジュールこのproplem.thisが探しているものです。あなたもここにso

にこの同様のスレッドを訪問することができ

詳細は、共有モジュールについての素晴らしいドキュメントはこれは、あなたが子供のモジュールをどのように扱うかに依存した角度io

関連する問題