Как дать динамический URL в поле redirectTo? - PullRequest
0 голосов
/ 31 мая 2018

Я хочу перенаправить предыдущий URL-адрес при вводе неправильного URL-адреса (404) !!Так что я должен дать предыдущую страницу URL в этом "RedirectTo", поданном

App.module.ts

const appRoutes: Routes = [
{path: 'Sk', canActivate: [AuthGuard], children: [ { path: 'announce', 
component: AnnounceComponent },{ path: '**', redirectTo: ?, pathMatch: 'full' }]},{ path: '**',component: AppComponent}];

1 Ответ

0 голосов
/ 31 мая 2018

первый импорт маршрутов к компоненту, где вы хотите изменить redirectTo.Затем вы можете получить доступ к маршрутам в вашем компоненте и изменить значение redirectTo.

app.routing.ts:

export let routes: Routes = [
{ path: '', redirectTo: 'pages', pathMatch: 'full' },
{ path: 'pages', loadChildren: 'app/pages/pages.module#PagesModule' },
{ path: 'login', loadChildren: 'app/pages/login/login.module#LoginModule' },
{ path: '**', component: ErrorComponent }

];

exampleComponent.ts:

// importing routes
import { routes } from '../app.routing';

// i'm changing it in ngOnInit for example.
ngOnInit() {

 routes[0].redirectTo = 'login';

}

Для перенаправления на предыдущую страницу, если введенный URL неверен :

  1. Создать новый компонент, например errorComponent.Всякий раз, когда URL неверен, мы используем этот компонент.Таким образом, в ваших маршрутах выполните следующие действия:

    export let route: Routes = [{path: '**', component: ErrorComponent}];

  2. В errorComponent мы будемwrite вернуться к логике предыдущей страницы.

    import {Location} из '@ angular / common';

    ngOnInit () {

    this.location.back ();}

...