代码之家  ›  专栏  ›  技术社区  ›  F11

角度2中的全局方法+

  •  -2
  • F11  · 技术社区  · 7 年前

    我必须在angular 2+中编写一个全局方法(我使用angular 6)。使用全局方法的原因是如果系统空闲X分钟,那么我必须显示对话框。我计划在每次单击时调用全局方法,并将当前时间存储在SessionStorage中,如果上次访问的时间之间的差异超过X分钟,则显示对话框。在哪里编写可以从任何地方访问的函数?

    如果你认为这种方法有缺陷,请你帮忙指出。

    2 回复  |  直到 7 年前
        1
  •  0
  •   Chris Stanley    7 年前

    import { Injectable } from '@angular/core';
    
    @Injectable()
    export class TimerService {
    
      private static setTime(time: Date) {
         localStorage.setItem('time', time)
      }
    }
    

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

    TimerService.setTime(new Date())
    
        2
  •  0
  •   Anthony Settergren    7 年前

    您可以将函数放置在窗口引用中,它将是全局函数。

    window.functionName=function(){};

    但你不需要这样做来解决你的问题。为什么不创建一个角度服务呢。服务应该设置一个x分钟的计时器,如果达到这个时间,它可以采取任何必要的措施。一旦这是到位,你可以实现各种方式来重置计时器归零。可能只需要绑定以单击文档上的事件。

    Intercept all mouse events