Content Projection
About
Это шаблон, в который вставляются данные из другого компонента. Например, у вас есть компонент Card, и в него попадают данные из вашего компонента.
Этот подход позволяет создавать переиспользуемые компоненты.
Реализация Content Projection в Angular:
Single-slot content projection: компонент принимает контент из одного источника;
Multi-slot content projection: компонент принимает контент из нескольких источников;
Conditional content projection: компоненты отображают контент при определенных условиях.
Создается Content Projection через элемент-placeholder <ng-content>
.
Single-slot content projection
Наш Content Projection компонент — <app-some-example>
:
Использование Content Projection компонента в другом компоненте:
Multi-slot content projection
Content Projection компонент <app-some-example>
:
Angular поддерживает CSS-селекторы здесь
Использование:
Conditional content projection
Если контент должен отрисовываться в зависимости от каких-то условий (ngIf
, например), то не рекомендуется использовать <ng-content>
. Для этих целей существует <ng-template>
и <ng-container>
.
Пример смотри здесь: https://angular.io/guide/content-projection
Last updated