Сделайте компонент, директиву и трубу общедоступными и используйте их вне модуля
Как сделать компонент, директиву и трубу общедоступными? Это потому, что когда я добавляю их в массив объявлений в модуле, они становятся видимыми везде в модуле, где они объявлены, и являются частными для модуля. Если я должен использовать вне модуля, что должно быть сделано.
2 ответа
Вы можете использовать общий модуль, который отвечает за обмен common components, pipes and directives
,
обратите внимание, это просто соглашение об именах, чтобы использовать sharedModule or coreModule
, но вы можете использовать любое другое имя модуля eg xyzModule
, Важным моментом является то, что общие вещи объявляются внутри export array
import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { CustomComponent} from 'path';
import { CustomPipe} from 'path';
import { CustomDirective} from 'path';
@NgModule({
imports: [ CommonModule ],
declarations: [ CustomComponent, CustomPipe, CustomDirective],
exports: [ CustomComponent, CustomPipe, CustomDirective]
})
export class SharedModule { }
Используйте его в App/Root Module или любой другой функции или в лениво загруженном функциональном модуле, подобном этому,
AppModule Или скажем так ClientModule
import {SharedModule } from 'path'
@NgModule({
imports: [..., sharedModule]
})
Просто нужно убедиться, что соответствующие элементы находятся в экспортной строке вашего модуля
exports: [ CustomComponent, CustomPipe, CustomDirective]
Тогда любой другой модуль, который реализует этот модуль, будет иметь доступ к этим вещам