可以说,我有网址,
http://localhost:4200/param1/param2/product
此处param1,param2是api中的参数实数值。如果用户手动更改地址栏中的参数值并重新加载页面。参数的值应替换为api中的实际值(param1,param2)。请为我建议实现此目标的方法。
答案 0 :(得分:1)
您可以使用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 DEMO,向您展示这个想法(注意网址)。