Что такое ContentChild

Ответ

ContentChild — это декоратор в Angular, который позволяет получить доступ к дочернему элементу или директиву из шаблона (контентного проекции) внутри компонента.

Пример:

import { Component, ContentChild, AfterContentInit } from '@angular/core';

@Component({
  selector: 'app-parent',
  template: `<ng-content></ng-content>`
})
export class ParentComponent implements AfterContentInit {
  @ContentChild('childRef') childElement: any;

  ngAfterContentInit() {
    console.log(this.childElement); // Элемент с #childRef
  }
}

Использование в шаблоне:

<app-parent>
  <div #childRef>Проецируемый контент</div>
</app-parent>

Особенности:

  • Работает только с элементами, спроецированными через <ng-content>.
  • Доступен после ngAfterContentInit.
  • Если элемент не найден, вернёт undefined.
  • Для нескольких элементов используй @ContentChildren.