0

アプリケーション全体のいくつかの場所で再利用したいコンポーネントがあります。そのため、新しいコンポーネントを使用してコア モジュール内にモジュールを作成しました。私が得ているエラーはです'foo' is not a known element

ここでデモを見ることができます。app/core/foo/foo.component.tsにインポートされた でモジュールを共有したいコンポーネントが表示されCoreModuleます。FooComponentそして、 ( selector をfoo使用して) で使用されていることがわかりますapp/crisis/crisis-list.component.ts

私は Angular 2 モジュールのドキュメントを読んだことがありますが、好きFooComponentな場所で使用できない理由がわかりません。

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

4

3 に答える 3

1

共通のコンポーネントを複数のモジュールで動作させるには、以下のようなオプションを指定しexportComponent特定のモジュールから共通のコンポーネントにする必要があるため、共有可能として機能します。exportsNgModuleComponent

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

次に、そのモジュールを別のモジュール内に挿入し、共通コンポーネントを使用したい場所に置きます。

注:モジュールのオプションCommonComponent内にあると述べていたとしても、他のモジュールでこれらの 、、を直接使用することはできません。共有可能として機能する特定のコンポーネントをエクスポートする必要があります。declartionsComponentPipeDirective

于 2016-12-02T13:37:55.407 に答える
1

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

1-モジュールを使用するモジュールにモジュールをインポートします

2-使用するモジュール内のコンポーネント(モジュールではなく)を宣言します。

しかし :

別のモジュール内にモジュールがある場合、それらの両方でコンポーネントを宣言することはできませんが、それらの両方でモジュールをインポートできるため、モジュールアプローチの方が優れています:!

于 2016-12-02T13:18:38.407 に答える
1

そのようにインポートする必要FooModuleがあります。CrisisModule

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

コンポーネントを使いたいときはいつでも、コンポーネントの宣言を含むモジュールをインポートするだけです。

于 2016-12-02T13:12:43.107 に答える