Angular 2共享组件错误

时间:2017-06-01 16:05:44

标签: angular components shared

我创建了一个由多个其他组件共享的组件。我将通用组件声明为模块A,它工作正常。我在模块B中也做了同样的事情,我收到了这个错误。

类型PagerComponent是2个模块声明的一部分:ModuleA和ModuleB!请考虑将PagerComponent移动到导入ModuleA和ModuleB的更高模块。您还可以创建一个新的NgModule导出并包含PagerComponent,然后在ModuleA和ModuleB中导入该NgModule。

然后我创建了一个寻呼机模块(NgModule)。

import { NgModule } from '@angular/core'; 
import { PagerComponent } from '../shared/pager.component';

@NgModule({
    imports: [ 
        PagerComponent
    ]
})
export class PagerModule {}

然后我将这个新模块导入ModuleA和Module B.我收到错误:

Uncaught Error: Unexpected value 'undefined' imported by the module 'PagerModule'

这个错误并没有告诉我有什么问题。有任何想法吗?

1 个答案:

答案 0 :(得分:1)

我看到了NgModule声明的问题。 感谢NgModule结构,您无法将NgModule以外的任何内容传递到imports字段。在您的情况下,您需要将PagerComponent传递给模块的declarationsexports字段。

declarations中,您显然会声明您的组件,管道和指令。此外,您需要将这些内容传递到exports部分,以使其成为可见的#34;对于目标模块中的其他组件

E.g。

import { NgModule } from '@angular/core'; 
import { CommonModule } from '@angular/common';
import { PagerComponent } from '../shared/pager.component';

@NgModule({
    imports: [ CommonModule ],
    declarations: [ PagerComponent ],
    exports: [ PagerComponent ]
})
export class PagerModule {}