我必须用角度2+写一个全局方法(我正在使用角度6)。使用全局方法的原因是如果系统闲置X分钟,则必须显示对话框。我打算调用每次单击时使用全局方法,并将当前时间存储在SessionStorage中;如果上次访问时间之间的差异超过X分钟,则显示对话框。在哪里编写可从任何地方访问的功能?
如果您认为这种方法有缺陷,请帮助指出这些缺陷。
答案 0 :(得分:0)
您可以在窗口引用中放置一个函数,该函数将是全局的。
window.functionName = function(){};
但是您无需执行此操作即可解决您的问题。为什么不创建一个Angular服务呢?该服务应将计时器设置为x分钟,如果到达该计时器,则可以采取任何必要的措施。一旦就位,您就可以采用各种方法将计时器重置为零。可能只需要绑定到文档上的单击事件即可。
答案 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())