首页 > 解决方案 > 无法通过元素 ID 使用 ngAfterViewInit 打开材料数据选择器

问题描述

我正在尝试在使用元素 ID (#) 加载组件时打开材料 DatePicker。当我尝试使用 ngAfterViewInit 时,它总是返回'cannot use 'open' to undefined'。当我单击日历图标甚至将单击属性添加到具有功能的按钮时,它就会open()起作用。

我在这里创建了简单的 stackblitz 页面https://stackblitz.com/edit/angular-7dkbsw?file=src%2Fapp%2Fapp.component.html当您可以检查我想要实现的目标时。

pickerID 被定义为应该使用日历打开模式的材料元素。

标签: angularangular-material

解决方案


您将错误的类型设置为选择器,它不应该MatDatepickerElementRef

export class AppComponent  {
  @ViewChild('picker',{static:false}) picker: MatDatepicker;

  ngAfterViewInit(){
    this.picker.open();
  }
}


推荐阅读