2016-09-01 17 views
5

W RootModule:kątowe 2 - Dyrektywy jeszcze zadeklarowane jeszcze błędy

@NgModule({ 
    imports: [ 
     ModuleA 
    ], 
    declarations: [ 
     ScrollToWhen 
    ], 
    bootstrap: [BootComponent], 
}) 
class RootModule {} 

W jednym z szablonu komponentu wewnątrz modułu A, używam ScrollToWhen, ale mam błąd: Can't bind to 'scrollToWhen' since it isn't a known property of 'div'.

Dlaczego?

Error: Unexpected directive 'HbClass' imported by the module 'Module'

+0

potrzebujemy więcej informacji, w jaki sposób u użyć dyrektywy, co oznacza kod dyrektywy wyglądać, ... –

+0

Byłoby lepiej przejść obok kodu zamiast zrzutu ekranu. Czy są 'HbClass',' Default', 'Asset',' Photon' modules? Masz je w 'deklaracjach' w' RootModule' i 'imports' w' Module'. "import" dotyczy modułów, "deklaracji" dla dyrektyw, komponentów i rur. –

+0

Więc powinienem utworzyć 'MyAppCommonModule' i zadeklarować wszystkie powszechnie używane dyrektywy i rury w nim, a następnie importować do modułów, kiedy tylko będę potrzebował? – tom10271

Odpowiedz

9

Albo dodać ScrollToWhen do deklaracji ModuleA lub przenieść go do modułu, który można następnie dodać do imports: [...] z ModuleA aby tam dostępne.

Element/dyrektywa może być wymieniony tylko w jeden pojedynczy moduł w declarations: [...]. Następnie zaimportuj ten moduł wszędzie tam, gdzie chcesz użyć tego komponentu/dyrektywy.

modułu służy do deklarowania dyrektyw i rury, trzeba ustawić je w exports jak:

@NgModule({ 
    declarations: [ 
     myDirectives 
    ], 
    exports: [ 
     myDirectives 
    ] 
}) 
+0

Dzięki za wskazanie konfiguracji, którą przegapiłem, aby dodać. Jednak po dodaniu opcji 'import' config w Module A, otrzymałem:' Błąd: nieoczekiwana dyrektywa 'MyDirective' zaimportowana przez moduł 'Module'' – tom10271

+0

Co 'import' dodałeś gdzie? Czy możesz zaktualizować swoje pytanie, aby pokazać, co masz teraz? –

+0

Mam osadzony zrzut ekranu – tom10271