你好,我有关于url路由的问题。
以下是应用程序路由路径示例
{ path: ':lang/:id', component: ClientPageComponent, canActivate: [ClientGuardService] },
{ path: ':lang/product', component: SearchPageComponent, canDeactivate: [ClientGuardService] }我想要检测path是否包含id load ClientPageComponent,但如果段不是id,我想要加载SearchPageComponent这里是basic [ClientGuardService]
import { Injectable } from '@angular/core';
import { CanActivate, ActivatedRouteSnapshot } from '@angular/router';
@Injectable()
export class ClientGuardService implements CanActivate {
canActivate(route: ActivatedRouteSnapshot): boolean {
if (isNaN(route.params.id)) {
return false
}
return true;
}
}发布于 2021-04-02 23:16:12
您可以尝试从url中提取id参数并检查它是否存在。代码将如下所示:
import { Injectable } from '@angular/core';
import { Router, ActivatedRouteSnapshot, CanActivate } from '@angular/router';
@Injectable()
export class ClientGuardService implements CanActivate {
constructor(private router: Router) {}
canActivate(route: ActivatedRouteSnapshot): boolean {
let id = route.params['id'];
if (id){
return true;
} else {
this.router.navigate(['/lang/product']);
return false;
}
}
}https://stackoverflow.com/questions/66920730
复制相似问题