Angular 6.1中点击routerLink无响应,求排查遗漏配置点
你遇到的路由无响应问题,最明显的问题在这里!
先揪出你最容易忽略的细节:路由配置里的路径末尾多了个斜杠!
你在app.module.ts里写的路由是:
{ path: 'about/', component: AboutComponent }
但你的routerLink是/about——Angular的路由匹配默认是精确匹配的,带末尾斜杠和不带斜杠的路径会被当成完全不同的地址,自然不会触发导航跳转。
第一步:修正路由路径
把路由配置里的'about/'改成'about',去掉末尾的斜杠:
{ path: 'about', component: AboutComponent }
额外检查点(如果改完还是没反应的话)
- 确认你在
AppModule的imports数组里正确注册了路由模块,不能只定义routes数组却不导入:import { RouterModule, Routes } from '@angular/router'; const routes: Routes = [ { path: 'about', component: AboutComponent }, // 其他路由配置... ]; @NgModule({ imports: [ RouterModule.forRoot(routes), // 这一步绝对不能丢! // 其他模块... ], // ... }) export class AppModule { } - 可以开启路由跟踪排查问题,在
forRoot里加上enableTracing: true,然后看浏览器控制台的路由日志,确认导航是否被触发:RouterModule.forRoot(routes, { enableTracing: true })
另外提一句:你在AboutComponent里导入ActivatedRoute是没问题的,但这个和路由跳转没直接关系,只有需要获取当前路由参数时才用得到,不用因为这个担心哦。
内容的提问来源于stack exchange,提问作者Atle Kristiansen
相关产品推荐
相关产品推荐

