angular - 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>
解决方案
您可以queryParams
如下使用。
<a routerLink="['/checklists']" [queryParams]="{ type: 'typeVariable', view: 'viewVariable', filter: 'filterVariable'}">Link</a>
推荐阅读
- javascript - API [未处理的承诺拒绝:TypeError:网络请求失败]
- c++ - 如何将多个数字添加到变量
- sql - 基于条件的 Big Query SQL 求和值
- git - Git - 针对 master 重新设置两个分支
- sql - Gorm Join 表查询
- sql-server - SQL Server 导入向导未显示数据库选择
- autohotkey - 如何使 AutoHotKey 脚本使用多个热键执行其功能?
- woocommerce - 如何在 WC()->cart->remove_cart_item($cart_item_key) 之后在购物车上显示消息 - Woocommerce
- coldfusion - 请求中填充了表单变量,但接收表单时为空字符串
- postgresql - PostgreSQL odbc_fdw (64bit) 连接到 MS Access (64bit)