Javascript-форум (https://javascript.ru/forum/)
-   Angular.js (https://javascript.ru/forum/angular/)
-   -   Объявление компонента в модулях (https://javascript.ru/forum/angular/74641-obyavlenie-komponenta-v-modulyakh.html)

sniffysko 26.07.2018 11:41

Объявление компонента в модулях
 
Здравствуйте уважаемые. Прошу помощи в объяснении одного феномена. :о) У меня есть приложение состоящее из нескольких модулей. Есть главный модуль приложения и несколько подчиненных. Типа такой структуры:
AppModule
    Submodule1
        DeepModule1
    Submodule2


Затеял я написать компонент, который будет применяться по всему приложению. Код компонента находится в папке:
AppModule/Sare/Components/MyCoolComponent

Теперь нужно задекларировать компонент. По идее, его надо заявить в модуле AppModule, который главный над всеми. Вот кусок кода:
@NgModule({
	imports: [
		Submodule1,
		Submodule2
	],
	declarations: [
		MyCoolComponent
	],
	exports: [
		MyCoolComponent
	],
})

При запуске проекта выдается ошибка:
Uncaught Error: Template parse errors:
'my-cool-component' is not a known element:
.....

Если перетащить объявление компонента в подчиненные модули, то все нормально. Но тогда получается, что компонент придется объявлять в каждом модуле, чего хотелось бы избежать.
При этом, если объявить компонент в AppModule и в нижележащих, то выскакивает ошибка о повторном декларировании компонента.
Подскажите пожалуйста, что я делаю не так, либо упускаю какую-то деталь или важный нюансик.

destus 26.07.2018 12:58

sniffysko,
Вообще создают отдельный Shared модуль, в котором собирают компоненты/директивы/фильтры/модули которые будут использованы в других feature модулях. Об этом кстати в офф. документации написано https://angular.io/guide/sharing-ngmodules


Часовой пояс GMT +3, время: 08:56.