Angular2路由器参数,包括分号

时间:2017-05-17 13:48:55

标签: angular angular2-routing router

我正在使用Angular2和RouterModule。我有一个等待参数(id)的子状态:

{
   path: 'details/:id',
   component: DetailComponent,
   outlet: 'details'
}

在我的例子中,参数id可以包括分号(即:TEST | EN; 1000; 0)。

我使用激活的路线获取参数let taskIdFromParam = this.activatedRoute.snapshot.params['id'];但结果我得到TEST|EN而不是 TEST | EN; 1000; 0

其余的id我们包含在urlSegment中作为参数(Object {0: "", 1000: "", EN: ""})。我尝试解析其余参数并用分号手动连接,但它们按字母顺序排列,因此我解析的id是 TEST | 0; 1000; EN 而不是 TEST 。| EN; 1000; 0

我知道这种情况正在发生,因为角度路由器对子状态使用矩阵URL表示法(请参阅下面的link)。

我有以下问题:

  1. 有没有办法在子状态上使用 QueryParameters
  2. 有没有办法告诉路由器不要逃脱分号?

1 个答案:

答案 0 :(得分:0)

  1. 是的,您可以使用查询参数
  2. 查询参数将编码特殊字符
  3. http://yoururl.com/state?yourParam=TEST|EN;1000;0

    this.route.queryParams.subscribe(params => {
      console.log(params['yourParam']);
    });