There can be several instances of various types be 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- component instance if there is.
- If you want to get something different you need to explicitely tell using
read
.