сервис, который запускается при создании экземпляра углового приложения независимо от конечной точки исходного маршрутизатора - PullRequest
0 голосов
/ 07 мая 2018

У меня есть служба аутентификации, которую я хочу запустить при создании экземпляра приложения. Я не уверен, как это сделать.

Одна из многих вещей, которые этот сервис будет делать, это проверять, содержит ли localalstorage JWT (я использую угловое приложение, поэтому я защищен от xss) и, если это так, получает разрешения на вход и информацию с сервера.

Я хочу, чтобы эта служба работала независимо от того, где находится моя начальная точка маршрута.

так что работает на

корень

и

корень / полностью / устрашающий / путь / пункт

имеет смысл? Я задаю этот вопрос, потому что, честно говоря, понятия не имею. В настоящее время я проверяю life cycle hooks

Так что не нужно использовать хуки жизненного цикла:

запускается ли компонент приложения на экземпляре приложения, независимо от того, к какому виду в данный момент осуществляется переход? Если это так, я думаю, что я мог бы просто сделать перехват жизненного цикла ngOnInit в компоненте приложения и внедрить приложение-службу в массив провайдеров.

так что, похоже, мне нужно взять файл app.component.ts и добавить конструктор и ngOnInit ловушку жизненного цикла, которая проверит службу авторизации. и выполнить необходимую работу для входа пользователя в систему и отображения соответствующих разрешений

1 Ответ

0 голосов
/ 07 мая 2018

15 просмотров, и я должен ответить на свой вопрос.

поэтому я написал следующее в моем app.component.ts

import { Component, OnInit } from '@angular/core';
@Component({

  selector: 'app-root',
  templateUrl: './app.component.html',
  styleUrls: ['./app.component.css'],
  providers:[VenueAdminVolleyService]
})
export class AppComponent implements OnInit{
  title = 'app';



  ngOnInit(){
    console.log('this shit is working yo!');
  }
}

и навигация к обоим

корень

, а затем закрыл браузер и перешел на

корень / устрашающий / маршрутизатор / положение / с / действительно / охлаждение / материал

и оба раза я получил this shit is working yo!

в консоли

, что означает, что этот код работает. Теперь мне просто нужно изменить console.log на функцию проверки входа в моей службе аутентификации!

...