如何在Angular 2中创建组件全局?

如何在Angular 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

要使组件提供给其进口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

您还需要添加声明数组。

declarations:[LanguageComponent] 
+0

在哪里添加? – OPV

+0

在您的SharedModule中 – JSingh