如何在模式弹出窗口中默认使 PrimeNG 日历处于打开状态?或者如何触发点击事件以打开打字稿模式弹出窗口中的 PrimeNG 日历?
如果我在 HTML 本身中使用,它会触发单击事件以打开日历showoverlay()
,但是在模式弹出窗口中使用时,由于弹出窗口不在 DOM 元素中,它会显示错误,因为showoverlay()
它不是函数。
如何在模式弹出窗口中默认使 PrimeNG 日历处于打开状态?或者如何触发点击事件以打开打字稿模式弹出窗口中的 PrimeNG 日历?
如果我在 HTML 本身中使用,它会触发单击事件以打开日历showoverlay()
,但是在模式弹出窗口中使用时,由于弹出窗口不在 DOM 元素中,它会显示错误,因为showoverlay()
它不是函数。
首先,将 a 添加Viewchild
到您的日历中,以便您可以操作它以编程方式打开它。
然后,在打开弹出窗口的方法中,调用showOverlay
日历对象上的方法来打开它。
最后,用 a 包围最后一行代码setTimout
以延迟其调用。
HTML
<p-dialog header="Title" [(visible)]="display" [width]="500" [height]="500">
<div class="row" style="height:300px;">
Select a date
<p-calendar #myCalendar [(ngModel)]="value"></p-calendar>
</div>
</p-dialog>
<button type="text" (click)="showDialog()" pButton icon="fa-external-link-square" label="Choose date"></button>
TS
@ViewChild('myCalendar') calendar;
display: boolean = false;
showDialog() {
this.display = true;
setTimeout(() => {
this.calendar.showOverlay(this.calendar.nativeElement);
}, 0);
}