如何在redirectTo字段中提供动态网址?

时间:2018-05-31 10:17:52

标签: angular angular-routing

当我输入错误的网址时,我想重定向上一个网址(404)!因此,我必须在“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 :(得分:1)

首先将路径导入到要更改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';

}

如果输入的网址错误,则重定向到上一页

  1. 创建一个新组件,比如errorComponent。每当url出错时,我们都会使用此组件。所以在您的路线中执行以下操作

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

  2. 在errorComponent中,我们将写回到上一页的逻辑。

    从'@ angular / common'导入{Location};

    ngOnInit(){

    this.location.back(); }