Как получить доступ к Ancestor-Components ElementRef внутри компонента/директивы
Я хочу получить доступ к
ElementRef
компонента-предка
(который не контролируется мной; значит, я не могу просто выставить на него нужный объект) .
Таким образом, в основном я мог бы внедрить сам компонент, а затем использовать функциональность
render3#getHostElement
функция (возвращает ElementRef данного экземпляра компонента, но, к сожалению, он не экспортируется из
@angular/core
упаковка).
<mat-form-field> <!-- the elRef of this one; but is potentially not a direct ancestor -->
<div> <!-- potentially some other elements in between -->
<my-component></my-component>
</div>
</mat-form-field>
@Component({...})
class MyComponent {
constructor(formField: MatFormField) {
const elRefOfFormField = getHostElement(formField) // basically what I need
}
}
Итак, есть ли «чистый» способ получить этот HostElement?
- имхо, это должно быть аналогично тому, как я могу получить доступ к дочерним элементам ElementRef компонента
@ViewChild(MatFormField, {read: ElementRef})
Это не вариант сделать что-то вроде
elementRef.nativeElement.closest('mat-form-field')
(иногда есть несколько вариантов использования компонента/директивы).