Angular Router ActivatedRoute

Я хочу проверить адресную строку, содержит ли она «admin» или нет

Адрес: http://localhost:4200/admin

constructor(
private route: ActivatedRoute
 ){
  this.route.paramMap.subscribe((paramMap: ParamMap) =>{
  console.log(paramMap.has('/admin'));
  }
)

но это дает мне ложь. Я ожидал правды


person Moumita akter    schedule 10.09.2018    source источник


Ответы (1)


Если вы хотите сделать это в конструкторе, используйте службу Location вместо маршрутизатора:

import { Location } from '@angular/common';

constructor(private location: Location){
  if (this.location.path().startsWith('/admin')) {
    console.log('true');
  }
}

Router.url инициализируется с помощью / (и заполняется реальным URL-адресом позже), в то время как Location.path() сразу возвращает реальный URL-адрес.

person Martin Adámek    schedule 10.09.2018
comment
Пожалуйста! Не могли бы вы принять этот ответ, если он решит вашу проблему? В противном случае он привлечет больше внимания, хотя на него уже дан ответ. - person Martin Adámek; 10.09.2018