Need help to understand meaning of {read: ViewContainerRef} in following statement.
@ViewChild('myname', {read: ViewContainerRef}) target;
Need help to understand meaning of {read: ViewContainerRef} in following statement.
@ViewChild('myname', {read: ViewContainerRef}) target;
There can be several instances of various types associated with the element tag with the #myname
template variable.
For each element there is an ElementRef
and ViewContainerRef
(maybe others from components or directives applied to that tag).
If the element is a component, then there is the component instance.
There can also be one or several directives applied to the element
With {read: SomeType}
you tell what type should be returned from the element with the #myname
template variable.
If you don't provide the read
parameter, @ViewChild()
returns the
ElementRef
instance if there is no component applied, or the read
.See also How can I select an element in a component template?
directives: [...]
of the current component or in PLATFORM_DITECTIVES
where a selectors matches. You can use #35234072 to investigate on a running application. –
Calvary ElementRef
, ViewContainerRef
or Directive
, with components and directives defined by user just being sub-types of Directive
? I was thinking about other types, not sub-types defined by user like directives. For instance injecting directly the HTMLElement
instead of the ElementRef
. –
Campaign HTMLElement
is not one of them. ElementRef
allows to access the HTMLElement using `ElementRef.nativeElement. –
Calvary @ViewChild(... read: ElementRef) ...
–
Calvary @ViewChild('form', {static: false}) public form: NgForm;
is angular also reading the type hint like the injector does? Or not? and is it faster to always add the read option? or is it actually slower? –
Danielldaniella © 2022 - 2024 — McMap. All rights reserved.