我正在尝试了解Routing在Angular上的工作方式。 所以这是我的标题,我想转到其他页面。 my simple header
app.routing.ts:
export const appRoutes: Routes = [
{ path: '', component: HomeComponent },
{ path: 'auth', component: AuthComponent },
{ path: 'about', component: AboutComponent }
]
export const ROUTING: ModuleWithProviders = RouterModule.forRoot(appRoutes);
app.module.ts
@NgModule({
declarations: [
...
],
imports: [
...
ROUTING
],
...
})
export class AppModule { }
app.component.html
<router-outlet></router-outlet>
home.component.html
<router-outlet></router-outlet>
首页<->身份验证正常
首页<->关于还可以
但是auth <->关于不起作用
我收到此类错误:
错误:无法匹配任何路由。网址段:“关于/身份验证”
我们可以看到url是关于auth enter code here
的/ auth身份的
答案 0 :(得分:2)
似乎您在routerLink
指令中使用了相对指定的相对路径,该路径最终最终将提到的路由附加到当前路由,这就是为什么在about/auth
上将about
到{{ 1}}重定向。要解决此问题,请使用如下所示的绝对路由。
auth
原因是,当您在[routerLink]="'/auth'"`
[routerLink]="'/about'"`
指令中没有提到/
的路由时,它将最终将路由自relative routing后附加到routerLink
。确保导航到特定路线时应使用绝对路线(在路线之前添加currentRoute
)。