/posts/b/1
加载来自博客ID id
/posts/b/-1
加载所有博客的所有帖子
如何配置路由以使用/posts
加载所有博客的所有帖子?
我使用重定向到RouterModule.forRoot
,但我对[routerLinkActive]
答案 0 :(得分:0)
路线顺序优先找到以下样本
RouterModule.forRoot([
{path:'products',component:ProductListComponent},
{path:'products/:id',
canActivate:[ProductDetailGuard],
component:ProductDetailComponent
},
{path:'welcome',component:WelcomeComponent},
{path:'',redirectTo:'welcome',pathMatch:'full'},
{path:'**',redirectTo:'welcome',pathMatch:'full'}
])
]
答案 1 :(得分:0)
您可以使用以下方式重定向:this.router.navigate()
在应该使用/posts/b/{id}
处理路线的组件中,您可以使用ActivatedRoute获取当前路线参数并采取相应措施。
你应该做那样的事情:
constructor(protected route: ActivatedRoute) {}
void checkRoute() {
route.params.Subscribe(
params => {
let id = params['id']; // use the name of your route parameter
if (!(id > 0)) {
// redirect here with router.navigate()
}
}
);
}
免责声明:尚未检查此确切代码,对不起语法/拼写错误。
可以在构造函数中随时调用函数checkRoute()。