2017-09-16 23 views
-2

コンポーネントをグローバルにしようとしました。しかし、それは私にエラーを返します:コンポーネント2を角度2でグローバルに作成する方法は?

だから、
Uncaught Error: Can't export directive LanguageComponent from SharedModule as it was neither declared nor imported! 

、私はとshareModuleにコンポーネントを追加しました:

また
exports: [ 
    LoaderComponent, 
    LanguageComponent 
    ] 

私はdiclarationとしてcore.moduleにコンポーネントを追加しようとしました。それは助けになりませんでした。

ShareModuleは次のとおりです。

import { NgModule } from '@angular/core'; 
import { CommonModule } from '@angular/common'; 
import { LoaderComponent } from './loader/loader.component'; 
import {LanguageComponent} from "../language/language.component"; 
import {HiderPipe} from "../pipes/Hider"; 

@NgModule({ 
    imports: [ 
    CommonModule 
    ], 
    declarations: [ 
    LanguageComponent, 
    LoaderComponent, 
    HiderPipe 
    ], 
    exports: [ 
    LoaderComponent, 
    LanguageComponent, 
    HiderPipe 

    ] 
}) 
export class SharedModule { } 

このモジュールは次のように本体のみcore.moduleにインポートされます。SharedModuleをインポートモジュールにコンポーネントを利用できるようにするに

@NgModule({ 
    imports: [ 

    SharedModule 
    ], 
+0

エクスポートにそれを追加すると、宣言されたかインポートされますか?コアモジュールでそれを宣言すると、共有モジュールにどのように役立ちますか?あなたはそのメッセージを読んだのですか? [mcve]を挙げてください。 – jonrsharpe

+0

私が持っているすべての情報を提供しようとしています:)問題のShareModuleを今追加しました – OPV

+0

もう一度質問してください – OPV

答えて

1

、あなたが追加する必要がありますLanguageComponentSharedModuledeclarationsフィールドとexportsフィールドに入力します。

Uncaught Error: Can't export directive LanguageComponent from SharedModule as it was neither declared nor imported

それともLanguageComponentはすでに(例:LanguageModule)他のモジュールの一部である場合:

@NgModule({ 
    imports: [ 
    // ... 
    ], 
    declarations: [ 
    // ... 
    LanguageComponent 
    ], 
    exports: [ 
    // ... 
    LanguageComponent 
    ] 
}) 
export class SharedModule { 
    // ... 
} 

エラーが述べたように、あなたは宣言のフィールドに追加する逃し、あなたがする必要はありそのモジュールをインポートし、そのモジュールを再エクスポートすることもできます。


他のモジュールの一部である別のコンポーネントでコンポーネントを使用するには、たとえばAppModuleのために、あなたは、そのモジュールのインポートフィールドにSharedModuleを追加する必要があります。

@NgModule({ 
    imports: [ 
    // ... 
    SharedModule 
    ], 
    declarations: [ 
    // ... 
    ], 
    exports: [ 
    // ... 
    ] 
}) 
export class AppModule { 
    // ... 
} 

セレクタを使用してコンポーネントのテンプレート内で使用します。フィーチャモジュールのセクション(docs)も参照してください。

+0

お待ちください。 – OPV

+0

他のコンポーネントでこれをどのように使用するのですか?テンプレート内で直接コンポーネントの説明に宣言メタを追加する必要がありますか? – OPV

+0

パイプをグローバルに使う方法も説明できますか?そして、私はあなたの答えを受け入れるでしょう:) – OPV

1

また、宣言配列を追加する必要があります。

declarations:[LanguageComponent] 
+0

どこに追加しますか? – OPV

+0

あなたのSharedModuleで – JSingh

関連する問題