Подтвердить что ты не робот

Что такое параметр read в @ViewChild для

Нужна помощь, чтобы понять смысл {read: ViewContainerRef} в следующем утверждении.

@ViewChild('myname', {read: ViewContainerRef}) target;
4b9b3361

Ответ 1

Может быть несколько экземпляров различных типов, связанных с тегом элемента с помощью переменной шаблона #myname.

Для каждого элемента есть ElementRef и ViewContainerRef (возможно, другие из компонентов или директив, примененных к этому тегу).

Если элемент является компонентом, то существует экземпляр компонента.

Также может быть одна или несколько директив, примененных к элементу

С помощью {read: SomeType} вы {read: SomeType}, какой тип должен быть возвращен из элемента с переменной шаблона #myname.

Если вы не предоставите параметр read, @ViewChild() возвращает

  • Экземпляр ElementRef если не применен компонент, или
  • экземпляр компонента, если есть.
  • Если вы хотите получить что-то другое, вам нужно явно указать использование read.

Смотрите также Как я могу выбрать элемент в шаблоне компонента?