我的 URL 采用三个参数,例如 localhost:4200/website/param1/param2/pagename/param3?user=userid
如果用户更改了任何一个参数并且它无效,例如:localhost:4200/website/newparam1/newparam2/pagename/param3?user=userid
我想将它们重定向回有效的 urllocalhost:4200/website/param1/param2/pagename/param3?user=userid
我创建了服务来验证并返回所有这些参数的正确 id。所以在这里我无法用正确的加载值而不是重定向/导航替换 URL 中的参数。
我尝试使用以下代码在组件中动态重定向。
this.route.navigate("[relativepath,param1, param2,pagname,configid]",{queryparams})
但这将显示从错误网址到正确网址的转换。我希望这一切都发生在负载上,比如在路由上解析,而路由又会调用服务。
我的服务有
createPram1(): Observable<any> {
return of(this.parameter1);
}
createParam2(param1: string): Observable<any> {
return of(this.param2);
}
validateParam1(id: string): Observable<any> {
return of(this.param1=== id ? id : this.param1);
}
validateParam2(id: string): Observable<any> {
return of(this.param2=== id ? id : this.param2);
}
我的决心.ts
export class AppPathResolve implements Resolve<any> {
constructor(private Service: Service) { }
resolve(route: ActivatedRouteSnapshot): Observable<any> {
const paramOne= route.paramMap.get('param1');
if (paramOne=== null) {
return this.Service.createPram1();
} else {
return this.Service.validateParam1(param1);
}
}
}
我搜索了很多链接,我的答案符合我的要求,最后在这里发布,希望能在这里得到一些信息。提前致谢!