2017-06-10 113 views
3

我有應該在子模塊和父模塊中使用的頭文件,這是在父模塊中導入和使用的,但是當嘗試在子組件中導入和使用時,它顯示錯誤。我的意思是如何爲父母和孩子模塊使用共同頭文件如何在angular2中的子模塊組件中使用父模塊組件

+0

什麼錯誤的類型? – hY8vVpf3tyR57Xib

+0

'組件是2個模塊聲明的一部分? – yurzui

+0

是未捕獲(承諾):錯誤:類型HeaderComponent是2個模塊聲明的一部分:AppModule和ProviderModule!請考慮將HeaderComponent移動到導入AppModule和ProviderModule的較高模塊。您還可以創建一個新的NgModule,該NgModule導出幷包含HeaderComponent,然後將該NgModule導入到AppModule和ProviderModule中。 –

回答

5

你應該創建與要使用,出口這些組件,並在其他模塊導入共享的模塊組件的共享模塊(父母和孩子爲你的情況)。

共享模塊:

import { NgModule } from '@angular/core'; 
import { CommonModule } from '@angular/common'; 
import { SharedComponent1 } from "./SharedComponent1"; 
import { SharedComponent2 } from "./SharedComponent2"; 

@NgModule({ 
imports: [ 
    CommonModule 
], 
declarations: [ 
    SharedComponent1, 
    SharedComponent2 
], 
exports: [ 
    SharedComponent1, 
    SharedComponent2 
] 
}) 
export class SharedModule {} 

使用的共享模塊:

import { NgModule }  from '@angular/core'; 
import { CommonModule } from '@angular/common'; 
... 
import { SharedModule } from './SharedModule'; 

@NgModule({ 
imports: [ 
    CommonModule, 
    ... 
    SharedModule 
], 
declarations: [ 
    ... 
], 
providers: [ 
    ... 
] 
}) 
export class AppModule{} 
+0

答案是重要的。這是由角度錯誤消息建議的第二種解決方案。因爲在第一個解決方案中,在導入其他兩個模塊的較高模塊中共享組件的組件共享。 – Hao

+0

Anwser與角度github支持一樣乏味......我們期望在父類或子模塊中直接導入,而不是調用第三個模塊的一些奇怪的反措施。錯誤消息表明我們有不必要的導入,所以我們必須刪除一些行,而不是添加一個完整的模塊。 – Eta

-1

如果您可以共享代碼和指定的錯誤,那將會很棒。

根據我的理解,你基本上想要從父組件傳遞一些數據到它的子組件。

爲此,您需要使用@Input將父參數傳遞給子對象。

Component Interaction between parent and child

讓我知道,如果它可以幫助與否

+0

謝謝。我的意思是如何爲孩子和父母模塊使用通用頭文件 –

+0

ok,那麼我認爲這個鏈接對你很有用。 – tom

+2

它描述了關於父母和孩子的組件,但我需要**模塊的交互** –