Заменить реальное значение из api для параметра в URL при изменении вручную пользователем в адресной строке с помощью Angular 6 - PullRequest
0 голосов
/ 13 июня 2019

Допустим, у меня есть URL,

http://localhost:4200/param1/param2/product

Здесь param1, param2 - реальные значения параметров из api. Если пользователь изменяет значение параметра в адресной строке вручную и перезагружает страницу. Значение параметра должно быть заменено реальными значениями (param1, param2) из ​​API. Пожалуйста, предложите мне способ достичь этого.

1 Ответ

1 голос
/ 13 июня 2019

Вы можете использовать CanActivate охранник маршрута. В защитном действии вы проверите результат API и можете при необходимости перенаправить.

Вот простой код для проверки параметра, который пользователь ввел в URL. Грубо говоря, вы можете проверить этот параметр, вызвав ваш API.

canActivate(next: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable<boolean> | Promise<boolean> | boolean {
  const idParam: number = +next.paramMap.get('id');
  if (idParam === 3) {
    this.router.navigateByUrl('/hello/1');
    return false;
  } else {
    return true;
  }
}

Вот демо Stackblitz , чтобы показать вам идею (обратите внимание на URL).

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