Нужна помощь, чтобы понять значение {read: ViewContainerRef} в следующем заявлении.
@ViewChild('myname', {read: ViewContainerRef}) target;
Нужна помощь, чтобы понять значение {read: ViewContainerRef} в следующем заявлении.
@ViewChild('myname', {read: ViewContainerRef}) target;
Ответы:
Может быть несколько экземпляров различных типов, связанных с тегом элемента с #mynameпеременной шаблона.
Для каждого элемента есть ElementRefи ViewContainerRef(возможно, другие из компонентов или директив, примененных к этому тегу).
Если элемент является компонентом, то существует экземпляр компонента.
К элементу также может применяться одна или несколько директив.
С {read: SomeType}помощью #mynameпеременной шаблона вы указываете, какой тип должен быть возвращен из элемента .
Если вы не предоставили readпараметр, @ViewChild()возвращает
ElementRef экземпляр, если компонент не применяется, или read.directives: [...]текущем компоненте или в том, PLATFORM_DITECTIVESгде совпадают селекторы. Вы можете использовать stackoverflow.com/questions/35233572/… для исследования работающего приложения.
HTMLElementне один из них. ElementRefпозволяет получить доступ к HTMLElement с помощью ElementRef.nativeElement.
@ViewChild(... read: ElementRef) ...