You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Angular router.navigate 如何使用变量动态设置查询参数的键名

实现方案

你写的直接传入{ parameterName: p }的写法无法达到预期,这种写法会将参数键固定为字符串parameterName,不会读取你定义的变量值。

要实现动态设置查询参数的键名,使用ES6的计算属性名语法即可,只需要把变量用方括号包裹作为键名:

// 定义存储参数名的变量
let parameterName = 'supportContractId'

// 路由跳转时使用计算属性
this.router.navigate([alternativeRedirect], { 
  queryParams: { 
    [parameterName]: p 
  }
})

方括号包裹的内容会被JS/TS先执行求值,最终的结果会作为对象的键名,完全满足你动态设置参数名的需求。

如果需要动态拼接多个查询参数,也可以先单独构建queryParams对象再传入,写法更灵活:

const queryParams = {}
queryParams[parameterName] = p
// 还可以继续追加其他动态/固定参数
queryParams['fixedParam'] = 'fixedValue'

this.router.navigate([alternativeRedirect], { queryParams })

内容的提问来源于stack exchange,提问作者Lambda

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 00:21:01