Как получить доступ к 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')(иногда есть несколько вариантов использования компонента/директивы).

0 ответов

Другие вопросы по тегам