Javascript 如何设置角度布线
这是我的工作 我设置了一个守卫,将请求URI/admin转发到/login, 有关详细信息,请参阅/admin/admin.guard.ts 它很好用。但是,当请求URI为/admin/abc时,它不起作用 以下是/admin/admin-routing.module.ts内容:Javascript 如何设置角度布线,javascript,angular,Javascript,Angular,这是我的工作 我设置了一个守卫,将请求URI/admin转发到/login, 有关详细信息,请参阅/admin/admin.guard.ts 它很好用。但是,当请求URI为/admin/abc时,它不起作用 以下是/admin/admin-routing.module.ts内容: import { NgModule } from '@angular/core'; import { Routes, RouterModule } from '@angular/router'; import { Ad
import { NgModule } from '@angular/core';
import { Routes, RouterModule } from '@angular/router';
import { AdminComponent } from './admin.component';
import { AdminGuard } from './admin.guard';
const routes: Routes = [
{
path: 'admin',
canActivate: [AdminGuard],
component: AdminComponent,
children: [
{
path: '',
redirectTo: 'admin',
pathMatch: 'full'
},
{
path: '**',
redirectTo: 'admin',
pathMatch: 'full'
}
]
}
];
@NgModule({
imports: [RouterModule.forChild(routes)],
exports: [RouterModule]
})
export class AdminRoutingModule { }
如何解决此问题?使用绝对路径进行重定向:
const routes: Routes = [
{
path: 'admin',
canActivate: [AdminGuard],
component: AdminComponent,
children: [
{
path: '',
redirectTo: '/admin',
pathMatch: 'full'
},
{
path: '**',
redirectTo: '/admin',
pathMatch: 'full'
}
]
}
];
如果您使用相对路径,将有一个无限的重定向循环。
从/admin/123到/admin/admin到/admin/admin,依此类推。您可能需要检查在
app.module.ts中的导入
下注册自定义角度模块的顺序。确保包含{path:'**',…}
路由条目的模块列在其他模块之后的末尾
例如,对于您的情况,请在app.module.ts的末尾保留admingAdminRoutingModule
:
@NgModule({
declarations: [ ... ]
imports: [
// Angular in-built modules
// Your custom modules
AdminRoutingModule
],
providers: [ ... ],
entryComponents: [ ... ],
bootstrap: [ AppComponent ]
})
**
表示当找不到与应用程序注册的现有路由匹配的url时,要重新选择的url的最终选项。还可以考虑使用重定向属性中的绝对路径,如<代码> /admin < />代码>
所以我不确定这是否能帮你解决问题,但值得一试