angular - 无法通过元素 ID 使用 ngAfterViewInit 打开材料数据选择器
问题描述
我正在尝试在使用元素 ID (#) 加载组件时打开材料 DatePicker。当我尝试使用 ngAfterViewInit 时,它总是返回'cannot use 'open' to undefined'
。当我单击日历图标甚至将单击属性添加到具有功能的按钮时,它就会open()
起作用。
我在这里创建了简单的 stackblitz 页面https://stackblitz.com/edit/angular-7dkbsw?file=src%2Fapp%2Fapp.component.html当您可以检查我想要实现的目标时。
picker
ID 被定义为应该使用日历打开模式的材料元素。
解决方案
您将错误的类型设置为选择器,它不应该MatDatepicker
是ElementRef
export class AppComponent {
@ViewChild('picker',{static:false}) picker: MatDatepicker;
ngAfterViewInit(){
this.picker.open();
}
}
推荐阅读
- anylogic - 如何在anylogic中模拟期间动态更改资源池的班次组大小?
- python-3.x - 如何在用户访问 API 时使令牌处于活动状态
- c# - 迁移到 .Net Core 3.1 时,.Net Core 2.2 中使用的 Services.AddMvc() 和 SuperJsonOutputFormatter 的替代方法是什么
- regex - 在句子内查找大写 O,但不在开头
- python - 在 pandas 数据框中将浮点值转换为 timedelta 值
- python - Python 抓取 | 美汤
- apache-nifi - 处理器可以在 NIFI-1.10.0 中设置指定状态吗?
- microsoft-graph-api - 通过 microsoft graph explorer 的 C# 示例说未定义的方法
- python - 仅检测人员类
- sql - sql server 聚合函数(sum)