Angular-直接在模板中获取路线参数

时间:2019-07-03 03:14:19

标签: angular routing

有时候我的路线带有几个参数,例如:

/checklists/:type/:view/:filter

我想通过以下方式在模板中创建链接: <a routerLink="['/checklists',':type',':view',':filter']">Link</a>

例如,:type应该自动更改为路由的type参数的当前值,并为娱乐:view添加唯一值。

当前,我必须这样做以获得相同的结果:

  public path2url(path,params,custom_params={}){

    let path_pieces = path.split('/');
    let url_pieces = [];
    for( let pk in path_pieces){
      let piece = path_pieces[pk];
      if(piece.match(/^\:/)){
        let param_name = piece.replace(':','');
        piece = custom_params[param_name] || (params[param_name] || piece);

      }
      url_pieces.push(piece);
    }

    let url = url_pieces.join('/');

    //console.log('path2url',path,params,custom_params,url);
    return url;

  }

<a routerLink="path2url(route_.path,route_.params,{'view':'map'})">Link</a>

1 个答案:

答案 0 :(得分:0)

您可以按以下方式使用 queryParams

<a routerLink="['/checklists']" [queryParams]="{ type: 'typeVariable', view: 'viewVariable', filter: 'filterVariable'}">Link</a>