У меня есть URL, который принимает три параметра, например localhost: 4200 / website / param1 / param2 / pagename / param3? User = userid
Если пользователь изменяет любой из параметров и он недействителен, например: localhost:4200/website/newparam1/newparam2/pagename/param3?user=userid
Я хочу перенаправить их обратно на действительный URL localhost:4200/website/param1/param2/pagename/param3?user=userid
Я создал службу для проверки и возврата правильного идентификатора для всех этих параметров.поэтому здесь я не могу заменить параметр в URL на правильное значение при загрузке, а не перенаправить / naviagte.
Я попытался динамически перенаправить компонент с помощью приведенного ниже кода.this.route.navigate("[relativepath,param1, param2,pagname,configid]",{queryparams})
Но это покажет переход от неправильного URL-адреса к правильному.Я хочу, чтобы все это происходило при загрузке, как при разрешении на маршруте, который Inturn вызывает службу.
Мой сервис имеет
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);
}
My Resolve.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);
}
}
}
Я искал много ссылок, и ответы не соответствуют моим требованиям, наконец, разместив его здесь, в надежде получить некоторую информацию здесь.заранее спасибо!