Я вызываю 2 метода на ngOnInit
: один метод проверяет параметры пути , а другой ищет параметры запроса в URL.
Вот метод ngOnInit :
ngOnInit() {
this.getFlavorAndService();
this.getQueryParams();
}
Вот метод, который ищет параметры пути :
getFlavorAndService(): void {
this.routePathParamsSubscription = this._route.params.subscribe(params => {
const flavor: string = params.flavor;
const service: string = params.service;
if (flavor) {
if (this._dataService.flavors.includes(flavor)) {
this.flavor = flavor;
} else {
this._router.navigate(['/page-not-found']);
}
} else {
this._router.navigate(['', this._dataService.DEFAULT_FLAVOR, this._dataService.DEFAULT_SERVICE]);
}
if (service) {
if (this._dataService.isEdsService(service)) {
this.service = service;
} else {
this._router.navigate(['/page-not-found']);
}
} else {
this._router.navigate(['', this._dataService.DEFAULT_FLAVOR, this._dataService.DEFAULT_SERVICE]);
}
});
}
Вот метод, который ищет quary params :
getQueryParams(): void {
this.routeQueryParamsSubscription = this._route.queryParams.subscribe(queryParams => {
..... some code
if (isEmpty(queryParams)) {
this._router.navigate(['', this._dataService.flavor, this.service]);
} else {
this._router.navigate(['', this._dataService.flavor, this.service], { queryParams: queryParams, queryParamsHandling: 'merge' });
}
});
}
Мой вопрос заключается в том, что, если передан неправильный аромат, я должен быть перенаправлен на /page-not-found
url, а остальные операторы не должны выполняться вообще. Вместо этого, когда я передаю недопустимую версию или службу, веб-приложение не переходит на page-not-found url, и остальные операторы метода выполняются (из методов getQueryParams). Он не перенаправляет, даже если я использую return this._router.navigate(['/page-not-found']);
.
Если приложение не перейдет на page-not-found
и не остановится?