Angular 4 不活动后重定向

2024-01-04

每当您在页面上处于非活动状态时,我都需要设置超时。假设您在页面上呆了 20 秒而没有点击任何内容,它会将您重定向到主屏幕。

当前的代码不适用于不活动状态,我不知道如何使其工作。

ngOnInit() {
// do init at here for current route.

setTimeout((router: Router) => {
    this.router.navigate(['nextRoute']);
}, 20000);  //20s

}


您需要一个可以倒计时并在用户操作发生时重置的计时器。要跟踪用户操作,您可以使用主机侦听器:

 @HostListener('document:keyup', ['$event'])
 @HostListener('document:click', ['$event'])
 @HostListener('document:wheel', ['$event'])
 resetTimer () {
    // user action occured
  }

计时器会是这样的:

  endCount = new Subject();

// end time in minutes   
private initTimer (endTime: number) {
        const interval = 1000;
        const duration = endTime * 60;

        this.subscription = Observable.timer(0, interval)
          .take(duration)
          .subscribe(value => this.render((duration - +value) * interval),
            err => { },
            () => {
              this.endCount.next();
            });
      }

      private render (count) {
        this.secondsDisplay = this.getSeconds(count);
        this.minutesDisplay = this.getMinutes(count);
      }

      private getSeconds (ticks: number) {
        const seconds = ((ticks % 60000) / 1000).toFixed(0);
        return this.pad(seconds);
      }

      private getMinutes (ticks: number) {
        const minutes = Math.floor(ticks / 60000);
        return this.pad(minutes);
      }

      private pad (digit: any) {
        return digit <= 9 ? '0' + digit : digit;
      }

监听 endCount 以在用户一段时间不活动时收到通知。

重置计时器:

resetTimer (newEndTime) {
    this.clearTimer();
    this.initTimer(newEndTime);
  }

   clearTimer () {
    if (this.subscription) {
      this.subscription.unsubscribe();
    }
   }

堆栈闪电战示例:https://stackblitz.com/edit/angular-2rv3or https://stackblitz.com/edit/angular-2rv3or

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Angular 4 不活动后重定向 的相关文章

随机推荐

  • 哪里可以下载“OpenGL”的源代码? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 哪里可以下载 OpenGL 的源代码 如果您想了解光栅化器 在屏幕上显示多边形的东西 是如何在软件中完成的 请按照 Eric 的建议并查看
  • 如何限制 NSFetchRequest 的结果数?

    我想在我的 iOS 应用程序中添加 最近 20 项 功能 我使用核心数据和NSFetchRequest 如何将结果数量限制为 20 以实现此目的 先感谢您 Kai set the 获取限制 http developer apple com
  • 如何启用主菜单项“复制”?

    我的主菜单项 复制 不可点击 但我在 Xcode 中启用它 我的代码中没有任何主菜单项的出口 我可以做什么 启用菜单项 应用程序菜单和弹出列表编程主题 http developer apple com library Mac documen
  • cluster_edge_ Betweenness 错误

    我正在使用该功能cluster edge betweennessiGraph 中提供 但我遇到错误Modularity is implemented for undirected graphs only g lt read csv samp
  • 如何在JavaFX中仅设置顶部填充[重复]

    这个问题在这里已经有答案了 我只想在 JavaFX 中使用 CSS 指定一个 或多个 填充值 我已阅读此处的文档http docs oracle com javase 8 javafx api javafx scene doc files
  • 加载 Google 网站后自动运行 Google 应用程序脚本?

    我编写了一个 Apps 脚本 它采用电子表格并将其转换为 Google 表单 我想在我的谷歌网站上显示表单 但是 我希望表单在每次打开网站时自动刷新 这样如果电子表格发生更改 表单在显示时也会更新 本质上 我希望脚本在打开 Google 网
  • 如何让github在重命名后遵循目录历史记录?

    一旦目录被重命名 git log 就不再显示其历史记录 除非您使用 git log follow 强制它显示 有没有办法强制 GitHub Web UI 上的 历史记录 功能使用 follow 或者 有吗any如何在 GitHub 上查看预
  • 将.bak文件恢复到远程数据库

    我有一个test bak文件在我的本地机器上 我需要将此文件恢复到远程计算机的数据库 我怎么做 当我尝试此操作时 远程数据库会抛出无法找到的错误test bak在本地文件系统上 Query RESTORE DATABASE TESTPROJ
  • 从嵌套字典列表中获取 pandas 数据框

    我是 Python 新手 所以这可能非常简单 但在寻找一段时间后我还没有找到解决我的问题的好答案 我正在尝试从字典列表创建 Pandas 数据框 我的嵌套字典列表如下 my list 0 a 23 b 15 c 5 d 1 1 a 5 b
  • 如何禁用 DEP

    我们有一个应用程序 其中堆的某些部分作为汇编指令执行 用于测试目的 我们将程序下载到 PLC 但允许用户在下载到 PLC 之前通过执行代码来模拟运行其应用程序 之前我们总是从存储指令的堆中执行这些程序 这工作得很好 但现在我们已经转换到 V
  • vtk中顶点和点的区别

    顶点和点之间的主要区别是什么VTK http www vtk org 好吧 我正在将一些计算点分配给vtkPolyData http www vtk org doc nightly html classvtkPolyData html ou
  • 在 unix 中将行转置为列

    我有下面给出的输入文件 输入文件 10 9 11 61432568509 118 1 20130810014023 46 440 4 GTEL 10 9 11 61432568509 118 1 20130810014023 46 440
  • 在 mac 10.9 中安装 libgd 时出错

    我正在尝试按照此处的说明在我的 mac OSX 10 9 上安装 libgd https mikewest org 2007 04 installing libgd from source on os x https mikewest or
  • IIO(字符)设备输出无输出 - IIO 缓冲区

    我正在为 ADC ADS1243 开发 Linux 驱动程序并使用 IIO 框架 我想添加一个功能来读取 ADC 数据并将其存储到 IIO 缓冲区 我添加了 iio triggered buffer setup 来探测驱动程序的功能 ret
  • 自动 vlookup 并将系数与 R 相乘

    我正在尝试用 R 统计编程语言 编写一个函数 该函数允许我自动计算线性回归 lm 问题 回归是通过 step 函数计算的 因此无法提前知道所选择的系数 问题 自动识别阶跃函数选择的系数 Vlookup 和交叉乘以结果的第二列 例如 View
  • AWS DAX 集群具有零缓存命中和缓存未命中

    我使用的是包含 3 个 dax r4 xlarge 节点类型节点的 AWS DAX 集群 当我从 EMR 集群运行 Spark 应用程序时 它始终从 dynamodb 表中获取值 即使我在同一组密钥上运行相同的应用程序 它也会查询 dyna
  • 当类使用泛型和泛型类型参数时如何获取正确的 MethodInfo 对象

    我想知道是否有人能够演示如何使用 Type 的 GetMethod 方法来检索以下签名的 MethodInfo 对象 Class StaticMethod
  • pycharm 无法识别 Git

    我正在尝试使用 pyCharm 从 bitbucket 中提取 github 存储库 我在版本控制 Git 下添加了 git 可执行文件的路径并安装了 bitbucket 插件 如果我测试两者 它表示测试运行良好 但是 当我现在打开终端并尝
  • MongoDB 中是否有命名集合的约定?

    我想知道数据库集合是否有约定 例如 PageVisit or page visit 这些符号有什么优点 缺点吗 一般约定是 小写名称 这可以避免区分大小写的问题 因为 MongoDB 集合名称是区分大小写 Plural 将某物的集合标记为复
  • Angular 4 不活动后重定向

    每当您在页面上处于非活动状态时 我都需要设置超时 假设您在页面上呆了 20 秒而没有点击任何内容 它会将您重定向到主屏幕 当前的代码不适用于不活动状态 我不知道如何使其工作 ngOnInit do init at here for curr