Angular 中的全局方法 2+

Global method in Angular 2+

我必须在 angular 2+ 中编写一个全局方法(我正在使用 angular 6)。使用全局方法的原因是如果系统空闲 X 分钟,那么我有显示对话框 box.I 我计划在每次点击时调用全局方法并将当前时间存储在 SessionStorage 中,如果上次访问时间之间的差异超过 X 分钟,则显示 dialog.Where 以编写可从所有人访问的函数无处不在?

如果您认为此方法有缺陷,能否请您帮忙指出。

您可以在 window 引用中放置一个函数,它将是全局的。

window.functionName = 函数() {};

但是您不需要这样做来解决您的问题。为什么不直接创建一个 Angular 服务。该服务应设置一个 x 分钟的计时器,如果达到该时间,它可以采取任何必要的操作。一旦准备就绪,您就可以实施各种方法将计时器重置为零。可能只需要绑定到文档上的点击事件。

Intercept all mouse events

您应该为此创建一个服务。例如:

import { Injectable } from '@angular/core';

@Injectable()
export class TimerService {

  private static setTime(time: Date) {
     localStorage.setItem('time', time)
  }
}

请记住,这是非常基础的版本。但是,在每个具有点击功能的组件中,只需导入 TimerService 然后将其添加到每个点击事件中:

TimerService.setTime(new Date())