2017-06-01 148 views
0

我創建了一個要由多個其他組件共享的組件。我將通用組件聲明爲模塊A,它工作正常。我在模塊B中做了同樣的事情,我得到了這個錯誤。Angular 2共享組件錯誤

類型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和模塊B.我得到錯誤:

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

此錯誤是不會告訴我什麼是錯。有任何想法嗎?

回答

1

我發現您的NgModule聲明存在問題。 感謝NgModule結構,您不能將除NgModule之外的任何內容傳遞給imports字段。在你的情況下,你需要通過PagerComponentdeclarationsexports模塊的字段。

declarations你很明顯地聲明你的組件,管道和指令。此外,您還需要將它們傳遞到exports部分,以使其對目標模塊中的其他組件「可見」

例如,

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 {}