2017-09-16 72 views
-2

我試圖使組件成爲全局組件。但它返回我一個錯誤:如何在Angular 2中創建組件全局?

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

所以,我添加組件shareModule爲:

exports: [ 
    LoaderComponent, 
    LanguageComponent 
    ] 

我也嘗試添加組件core.module爲diclaration。它沒有幫助。

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只導入爲:

@NgModule({ 
    imports: [ 

    SharedModule 
    ], 
+0

如何將它添加到導出使它聲明或導入?如何在共享模塊的核心模塊中聲明它?你讀過這條消息了嗎?請給[mcve]。 – jonrsharpe

+0

我嘗試提供我擁有的所有信息:)現在我在問題中添加了ShareModule – OPV

+0

請再次查看問題 – OPV

回答

1

要使組件提供給其進口SharedModule模塊,你必須添加LanguageComponent到您的SharedModuledeclarations字段和exports字段。

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

由於錯誤陳述,你錯過了將其添加到該聲明欄:

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

或者,如果你LanguageComponent已經是另一個模塊的一部分(例如:LanguageModule),你必須導入該模塊,您也可以重新導出該模塊。


要在其他組分,它是另一個模塊的一部分使用的組件,例如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