我的 app.component.html :
<router-outlet></router-outlet>
我的 app-routing.module.ts
import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { RouterModule, Routes } from '@angular/router';
import { MenuComponent } from './components/menu/menu.component';
import { BlogComponent } from './components/blog/blog.component';
import { TeamComponent } from './components/team/team.component';
const routes: Routes = [
{ path: '', component: MenuComponent },
{ path: '**', component: MenuComponent },
{ path: 'menu', component: MenuComponent },
{ path: 'blog', component: BlogComponent },
{ path: 'team', component: TeamComponent }
];
@NgModule({
imports: [
RouterModule.forRoot(routes)
],
exports: [RouterModule]
})
export class AppRoutingModule { }
当我在网址中写入要转到的路线(即http://localhost:4200/blog)时,没有错误提示,但我停留在MenuComponent中。同样,当我刷新时,链接保持为http://localhost:4200/blog。
我想念什么吗?
P.S:如果需要任何代码,我可以编辑我的问题以显示它,请不要立即降格:)
答案 0 :(得分:2)
您需要订购路线,路由器正在找到第一个匹配项,这是您的菜单组件,请尝试执行此操作。
const routes: Routes = [
{ path: 'menu', component: MenuComponent },
{ path: 'blog', component: BlogComponent },
{ path: 'team', component: TeamComponent },
{ path: '', component: MenuComponent },
{ path: '**', component: MenuComponent }
];
路由在配置中的顺序很重要,这是设计使然。路由器在匹配路由时会使用“先赢”策略,因此应将更具体的路由放在不那么具体的路由之上。在上面的配置中,首先列出具有静态路径的路由,然后是与默认路由匹配的空路径路由。通配符路由排在最后,因为它匹配每个URL,并且只有在没有其他路由最先匹配时才应选择通配符路由。
从有角度的网站here