Angular 2+中的全局方法

时间:2018-09-20 15:17:21

标签: angular global-variables session-storage

我必须用角度2+写一个全局方法(我正在使用角度6)。使用全局方法的原因是如果系统闲置X分钟,则必须显示对话框。我打算调用每次单击时使用全局方法,并将当前时间存储在SessionStorage中;如果上次访问时间之间的差异超过X分钟,则显示对话框。在哪里编写可从任何地方访问的功能?

如果您认为这种方法有缺陷,请帮助指出这些缺陷。

2 个答案:

答案 0 :(得分:0)

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

window.functionName = function(){};

但是您无需执行此操作即可解决您的问题。为什么不创建一个Angular服务呢?该服务应将计时器设置为x分钟,如果到达该计时器,则可以采取任何必要的措施。一旦就位,您就可以采用各种方法将计时器重置为零。可能只需要绑定到文档上的单击事件即可。

Intercept all mouse events

答案 1 :(得分:0)

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

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

@Injectable()
export class TimerService {

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

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

TimerService.setTime(new Date())