Нужна помощь, чтобы понять значение {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) ...