如何获取 Mat Autocomplete 的 Panel ElementRef

How do I get the Panel ElementRef of Mat Autocomplete

根据 MatAutocomplete documentation,MatAutocomplete class 上有一个 panel 属性 可以为您提供面板的 elementRef。

panel: ElementRef

Element for the panel containing the autocomplete options.

虽然 autocomplete.panel 总是未定义,但我正在努力让它工作?我错过了什么?

<mat-autocomplete #auto="matAutocomplete">
  @ViewChild("auto") autocomplete: MatAutocomplete;

  ngAfterViewInit(): void {
    console.log(this.autocomplete.panel); // undefined??
  }

Stackblitz

我意识到该元素只有在面板打开且该元素位于 DOM 中时才可用。如果您考虑一下,这是有道理的...

查看我的 updated stackblitz 了解我的意思。请注意,该元素尚未添加到 (opened) 事件的视图中。这意味着您必须添加 setTimeout 或以某种方式等待元素添加到 dom 才能访问它。