首页 > 解决方案 > Angular - 直接在模板中获取路由参数

问题描述

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

/checklists/:type/:view/:filter

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

例如: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>

标签: angularrouting

解决方案


您可以queryParams如下使用。

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

推荐阅读