我在我的 Angular 应用程序中实现了一个会话超时模块,它监控空闲时间并打开会话超时对话框并在对话框上显示倒计时值。问题是当我在该屏幕上移动鼠标或至少触摸该屏幕时,倒计时值停止,但我只想在我单击对话框而不是屏幕上的任何内容时才停止对话框上的倒计时值。我认为如果我们提供自定义中断,如下面的链接所示,可以做到这一点
例如,如果我只配置鼠标单击,它可以停止对话框上的倒计时,但这不会发生。可能是这个问题可能是因为我正在从另一个组件打开会话超时对话框。
但我无法停止倒计时,这是我的示例代码
this.idle.onIdleStart.subscribe(() => {
console.log('on idle start');
let dialogRef;
if (this.dialogRef === undefined || this.dialogRef === null) {
dialogRef = this.dialog['open'](SessionTimeoutDialogComponent, {
width: '30%',
data: {idleTime: 10, timeoutTime: 10},
panelClass: 'session-timeout-dialog'
});
this.dialogRef = dialogRef;
}
this.dialogRef.afterClosed().subscribe(result => {
this.timeoutTime = result;
});
this.dialogRef = dialogRef;
});
this.idle.onTimeoutWarning.subscribe((countdown) => {
this.timeoutTime = countdown;
this.dataService.changeVersionSelectionData(countdown);
});
谁能指导我们如何做到这一点?