Глобальный метод в Angular 2+ - PullRequest
       10

Глобальный метод в Angular 2+

0 голосов
/ 20 сентября 2018

Мне нужно написать глобальный метод на угловом 2+ (я использую угловой 6). Причина использования глобального метода заключается в том, что если система простаивает в течение X минут, мне нужно показать диалоговое окно. Я планирую вызватьглобальный метод при каждом щелчке и сохранение текущего времени в SessionStorage. Если разность между временем последнего доступа превышает X минут, то покажите диалоговое окно. Где написать функцию, доступную для всех и везде?

Если вы считаете, что этот подход имеетнедостатки, не могли бы вы помочь указать на них.

Ответы [ 2 ]

0 голосов
/ 20 сентября 2018

Вы должны создать сервис для этого.Например:

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

@Injectable()
export class TimerService {

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

Имейте в виду, это очень простая версия.Но затем, в каждом компоненте, который имеет функцию щелчка, просто импортируйте TimerService и добавьте это к каждому событию щелчка:

TimerService.setTime(new Date())
0 голосов
/ 20 сентября 2018

Вы можете поместить функцию в ссылку на окно, и она будет глобальной.

window.functionName = function () {};

Но вам не нужно делать это, чтобы решитьтвоя проблема.Почему бы просто не создать сервис Angular.Служба должна установить таймер на x минут, и если это когда-либо будет достигнуто, она может предпринять любое необходимое действие.Как только это будет сделано, вы можете реализовать различные способы сброса таймера до нуля.Вероятно, просто необходимо привязать события щелчка к документу.

Перехватить все события мыши

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...