2016-09-29 18 views
5

Chcę zadeklarować potok w module nadrzędnym i użyć go w modułach potomnych.Problem z tymi samymi deklaracjami składowymi Pipe w modułach potomnych

@NgModule({ 
    // Pipe which I want to declare in all child modules 
    declarations: [ ThisIsPipe ], 
    imports: [ ChildModuleOne, ChildModuleTwo], 
}) 

Jak mogę użyć modułów potomnych?

Bo jeśli Oświadczam go dwukrotnie mam błąd

Uncaught Error: Type ThisIsPipe is part of the declarations of 2 modules: ChildModuleOne and ChildModuleTwo! Please consider moving ThisIsPipe to a higher module that imports ChildModuleOne and ChildModuleTwo. You can also create a new NgModule that exports and includes ThisIsPipe then imports that NgModule in ChildModuleOne and ChildModuleTwo.

Odpowiedz

6

Musisz utworzyć kolejny moduł, gdzie można umieścić rurę, a następnie zaimportować ten moduł, w którym chcesz używać tej rury.

Jedna dyrektywa, komponent lub rura może zawsze należeć tylko do jednego modułu NgModule, ale ten moduł NgModule można zaimportować do dowolnej liczby modułów.

+0

Czy jest możliwe aby użyć deklaracji rodziców z modułów podrzędnych? –

+0

Nie, musisz zaimportować wszystkie moduły, z których chcesz korzystać z deklaracji bezpośrednio. Możesz umieścić kilka komponentów, dyrektyw i rur wielokrotnego użytku w NgModule. Możesz także utworzyć NgModuł (A), który eksportuje inne NgModuły (B, C, D), abyś mógł zaimportować B, C, D przez dodanie A do importu twojego bieżącego modułu. –

Powiązane problemy