当用户输入 home 或 tab-navigation 应用程序时,必须进入登录页面。
const appRoutes: Routes = [
{
path: 'tab-navigation',
redirectTo: 'login',
pathMatch: 'full'
},
{
path: 'home',
redirectTo: 'login',
pathMatch: 'full'
},
{
path: '',
redirectTo: 'login',
pathMatch: 'full'
},
{
path: '**',
redirectTo: 'error404',
}
];
当输入为``或类似'dfd45657d'之类的东西时,此逻辑起作用。为什么不为家庭和Tab导航工作?
答案 0 :(得分:2)
首先,您需要创建关联组件以进行登录。
第二,matchpath在这里不影响您。因此无论您保留与否,都没有效果。
尝试一下:
import { NgModule } from '@angular/core';
import { RouterModule, Routes } from '@angular/router';
import { LoginComponent } from '../login/login.component';
const routes: Routes = [
{
path: 'tab-navigation',
redirectTo: 'login'
},
{
path: 'home',
redirectTo: 'login'
},
{
path: '',
redirectTo: 'login',
pathMatch: 'full'
},
{
path : 'login',
component : LoginComponent
},
{
path: '**',
redirectTo: 'error404',
}
];
@NgModule({
imports: [RouterModule.forRoot(routes)],
exports: [RouterModule]
})
export class RouteModule { }
工作链接:https://stackblitz.com/edit/angular-nbajga?file=src%2Fapp%2Froute%2Froute.module.ts
答案 1 :(得分:1)
如果您的路由中有登录网址,我猜想是由于login
与'**'匹配,可能与两次成功重定向有关。
但是如果您确实没有添加登录网址,则可能需要添加一个...
const appRoutes: Routes = [
{
path: 'tab-navigation',
redirectTo: 'login',
pathMatch: 'full'
},
{
path: 'home',
redirectTo: 'login',
pathMatch: 'full'
},
{
path: '',
redirectTo: 'login',
pathMatch: 'full'
},
{
path: 'login',
component: 'loginComponent',
},
{
path: '**',
redirectTo: 'error404',
}
];
答案 2 :(得分:0)
尝试
const appRoutes: Routes = [
{
path: 'tab-navigation',
redirectTo: '',
pathMatch: 'full'
},
{
path: 'home',
redirectTo: '',
pathMatch: 'full'
},
{
path: '',
redirectTo: 'login',
pathMatch: 'full'
},
{
path: '**',
redirectTo: 'error404',
}
];