2016-12-02 5 views
0

私は、アプリケーションを通していくつかの場所で再利用したいコンポーネントを持っています。そのため、私はコアモジュール内に新しいコンポーネントでモジュールを作成しました。私が得ているエラーは'foo' is not a known elementです。コアモジュールで定義されたコンポーネントを遅延ルートから使用するにはどうすればよいですか?

デモhereが表示されます。 app/core/foo/foo.component.tsにモジュールを共有したいコンポーネントが表示され、CoreModuleにインポートされています。そしてapp/crisis/crisis-list.component.tsで使用されているFooComponent(セレクタfooを使用)が表示されます。

私は死に角度2モジュールのドキュメントを読んで、私は喜ばどこに私がFooComponentを使用できない理由に私の指を置くことはできません。

私には何が欠けていますか?

答えて

1

あなたはそのようなCrisisModuleFooModuleをインポートする必要があります。

import { FooModule } from '../core/foo/foo.component'; 
... 
@NgModule({ 
    imports: [CommonModule, CrisisRoutingModule, FooModule], 
    ... 
}) 
export class CrisisModule{} 

コンポーネントを使用する場合は、コンポーネントの宣言を含むモジュールをインポートするだけです。

1

あなたが選択する必要があります:

1-あなたがそれを使用しようとしてモジュール内のコンポーネント(ないモジュール)を宣言し、それを

2-使用しようとしているモジュールで、あなたのモジュールをインポート。

しかし:あなたは別のモジュール内のモジュールを持っている場合、あなたはそれらの両方でコンポーネントを宣言することはできませんので

モジュールのアプローチは、より良いですが、あなたはそれらの両方のモジュールをインポートすることができます!

+0

私はこれを覚えていますが、「CoreModule」のポイントは、そこのすべてがアプリケーション全体に自由にアクセスできるということでした。 – onetwothree

+0

CoreModuleをモジュールごとにインポートした場合にのみ動作します:) – Milad

1

共通コンポーネントは、様々なモジュールで作業させるために、あなたは以下のようにNgModuleexportsオプションを指定することにより、特定のモジュールからexportComponentそれに持っている、それはComponent

exports: [CommonComponent] //it will contain the list of shareable Components 

として共有可能な行為もして、それを注入しますので、モジュールを共通モジュールを使用したい場合は、別のモジュールの内部に配置します。

注:も、あなたはモジュールのdeclartionsオプションの内側に存在するCommonComponentを言及していた、それはそれを動作させるために、直接、他のモジュールでそれらのComponent S、Pipe年代、Directive年代を使用することはできません共有可能となるべき特定のコンポーネントをエクスポートする必要があります。

+0

ああ、わかります。私は 'FooModule'から単純にエクスポートし、そのモジュールを' CoreModule'にインポートしてエクスポートし、アプリケーション全体で利用できるようにすることを考えました。 – onetwothree

+0

ユピー、それはそれが動作する方法です:) –

関連する問題