为Angular2构建自定义RouteLink?

时间:2017-07-13 15:43:52

标签: angular angular2-routing

/posts/b/1加载来自博客ID id

的帖子

/posts/b/-1加载所有博客的所有帖子

如何配置路由以使用/posts加载所有博客的所有帖子?

我使用重定向到RouterModule.forRoot,但我对[routerLinkActive]

有疑问

2 个答案:

答案 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()。