Jar*_*ple 2 javascript primeng angular
我使用PrimeNg <p-calendar>,并有[touchUI]="true"和[showTime]="true"
这将打开一个带有覆盖网页其余部分的日期选择器。所有这些工作正常。除了选择日期和时间之后,关闭 datePicker 并移除覆盖层的唯一方法是在 datePicker 外部单击。我需要的是一个供用户单击以关闭 datePicker 并删除覆盖层的地方。
我有一个按钮,包括<p-footer>我还可以使用@ViewChild装饰器访问 overlayVisible 属性并手动将其设置为 false。
这确实关闭了 datePicker,但不幸的是它会使覆盖物阻塞整个页面,直到它被刷新。
我确定这是一个简单的修复,但它让我难倒。
在我的组件中
@ViewChild('myCalendar') datePicker;
close() {
this.datePicker.overlayVisible = false;
}
Run Code Online (Sandbox Code Playgroud)
html
<p-calendar #myCalendar
formControlName="tsClockIn"
[showIcon]="true"
[touchUI]="true"
[showTime]="true">
<p-footer>
<button pButton type="button" label="Close" (click)="close()"></button>
</p-footer>
</p-calendar>
Run Code Online (Sandbox Code Playgroud)
小智 12
面临同样的问题并尝试了所有提到的建议,但没有一个对我有用。黑客攻击后,以下对我有用:)
<p-calendar monthNavigator="true" showTime="true"
[minDate]="minDate"
[readonlyInput]="true"
[showIcon]="true"
formControlName="departDate"
touchUI=true
#calendar
required>
<p-footer>
<button pButton type="button" label="Close"
(click)="calendar.hideOverlay()">
</button>
</p-footer>
</p-calendar>
Run Code Online (Sandbox Code Playgroud)