1

根据MatAutocomplete 文档,MatAutocomplete 类中有一个panel属性可以为您提供面板的 elementRef。

面板:ElementRef

包含自动完成选项的面板元素。

尽管 autocomplete.panel 始终未定义,但我正在努力使其正常工作?我错过了什么?

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

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

堆栈闪电战

4

1 回答 1

1

我意识到只有当面板打开并且元素在 DOM 中时,该元素才可用。如果你仔细想想,这是有道理的......

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

于 2021-01-20T10:39:54.633 回答