Angular route — как проверить на какой я странице?

Angular предоставляет несколько способов проверить, на какой странице находится пользователь. Вот некоторые из них:

1. Использование сервиса Router: Angular Router предоставляет возможность получить информацию о текущем маршруте и его параметрах. Вы можете подписаться на событие изменения маршрута и обновить информацию о текущем маршруте. Вот пример кода:

import { Component, OnInit } from '@angular/core';
import { Router, NavigationEnd } from '@angular/router';

@Component({
  selector: 'app-my-component',
  templateUrl: './my-component.component.html',
  styleUrls: ['./my-component.component.scss']
})
export class MyComponent implements OnInit {
  currentRoute: string;

  constructor(private router: Router) {}

  ngOnInit(): void {
    this.router.events.subscribe((event) => {
      if (event instanceof NavigationEnd) {
        this.currentRoute = event.urlAfterRedirects;
        // Здесь вы можете произвести любые дополнительные действия,
        // основанные на текущем маршруте
      }
    });
  }
}

В этом примере мы подписываемся на событие NavigationEnd, которое происходит всякий раз, когда маршрут успешно завершается. Таким образом, в свойстве currentRoute мы сохраняем текущий маршрут.

2. Использование ActivatedRoute: Когда ваш компонент был загружен с помощью Angular Router, вы можете получить доступ к информации о текущем маршруте с помощью ActivatedRoute. Вот пример кода:

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

@Component({
  selector: 'app-my-component',
  templateUrl: './my-component.component.html',
  styleUrls: ['./my-component.component.scss']
})
export class MyComponent implements OnInit {
  currentRoute: string;

  constructor(private route: ActivatedRoute) {}

  ngOnInit(): void {
    this.currentRoute = this.route.snapshot.url.join('/');
    // Здесь вы можете произвести любые дополнительные действия,
    // основанные на текущем маршруте
  }
}

Здесь мы используем route.snapshot.url, чтобы получить текущий маршрут в виде массива сегментов. После этого мы преобразуем его в строку с помощью join('/') и сохраняем в свойстве currentRoute.

3. Использование Location: Можно использовать сервис Location из Angular для получения информации о текущем URL. Вот пример кода:

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

@Component({
  selector: 'app-my-component',
  templateUrl: './my-component.component.html',
  styleUrls: ['./my-component.component.scss']
})
export class MyComponent implements OnInit {
  currentUrl: string;

  constructor(private location: Location) {}

  ngOnInit(): void {
    this.currentUrl = this.location.path();
    // Здесь вы можете произвести любые дополнительные действия,
    // основанные на текущем URL
  }
}

В этом примере мы используем location.path(), чтобы получить текущий URL и сохранить его в свойстве currentUrl.

Все эти методы позволяют вам получить информацию о текущем маршруте или URL в Angular. Выберите метод, который лучше всего соответствует вашим потребностям и используйте его в своем коде.