2016-12-10 18 views
0

今、私はいくつかの標準コンポーネントを共通のページヘッダーにロードし、いくつかのコンポーネントを共通のページフッターにロードし、変更可能なページコンテンツをa <router-outlet> - それのように。角2のヘッダーとフッター用フィーチャーモジュール

app.component.ts

<div> Several header components loaded and displayed here. </div> 
<router-outlet> 
<div> Several footer components loaded and displayed here. </div> 

そのすべてが正常に動作します - 私は本当に、さらにサイトを区分することを除いて。ヘッダーとフッターには、合計約20のコンポーネントがロードされています。 app.module.tsapp.component.ts、またはapp-routing.module.tsのすべての共通コンポーネントと、多くのリンクからのルートを混乱させたくありません。私は彼らを自分のフィーチャー・モジュールに移すことを好むでしょう。

共通ページヘッダーのすべてのコンポーネントをcommon-headerというフォルダに、共通ページのフッターのすべてのコンポーネントをcommon-footerというフォルダに移行しました。 (少なくとも、appディレクトリはあまり混乱していません)

さらに、common-header.modulecommon-footer.moduleと呼ばれるモジュールを作成しました。 common-header.componentcommon-footer.componentを作成して、それぞれのヘッダーとフッターのコンポーネントを呼び出すためにhtmlをラップします。

これらの一般的なヘッダーとフッターの機能モジュールのコンテンツをすべてのページで呼び出して表示するにはどうすればよいですか。

+0

共有モジュールにどのようにコンポーネントを分割し、「すべてのページで呼び出しと表示...」が関連しているのか分かりません。何が問題ですか?何を試しましたか? 「すべてのページ」とは何ですか? –

+0

サイトには多くの機能モジュールがあります。共通ヘッダーのすべての要素を1つのモジュールに入れ、共通フッターの要素を別のモジュールに入れ、すべての論理ページ上の2つのモジュールにコンポーネントの内容を呼び出して表示するだけです。明らかに、Angular2は、1つの実ページだけを持つSPAフレームワークです。私は実際のものとは対照的に仮想ページを参照しています。 –

+0

コンポーネントがどのモジュールに入っているかは関係ありません。フィーチャモジュールの 'exports'とコンポーネントを使用するモジュールの' imports'のフィーチャモジュール(ディレクティブとパイプ) –

答えて

2

コンポーネントがどのモジュールに入っているかは関係ありません。コンポーネント(およびディレクティブとパイプ)を使用するモジュールのインポートでは、フィーチャモジュールとフィーチャモジュールのエクスポートにコンポーネントがあることを確認してください。

@NgModule({ 
    exports: [DirectiveA, PipeB, ComponentC], 
    declarations: [DirectiveA, PipeB, ComponentC] 
}) 
class MySharedModule{} 
@NgModule({ 
    imports: [BrowserModule, MySharedModule], 
    declarations: [AppComponent], 
    declarations: [Bootstrap], 
}) 
class AppModule{} 

importsにあなたは、このモジュールのディレクティブや配管を再利用したいものは何でもモジュールにこの方法を共有モジュールを追加します。

+1

恐ろしい!ガンター助けてくれてありがとう!それは完璧に働いた! –

関連する問題