使用HttpParams和FromObject有条件地添加参数,并使用变量作为键名

时间:2019-01-22 18:07:13

标签: angular angular6 angular-httpclient http-parameters

是否可以使用HttpParams和fromObject有条件地添加参数?我尝试在实例化HttpParams之后添加条件参数,但这没有用:

const params = new HttpParams({
  fromObject : {
    requiredParam: 'requiredParam'
  }
});

if (addOptionalParam)
      params.append('optionalParamKey', 'optionalParamValue');

还可以将常量用作fromObject参数的键吗?我试过了,但不起作用:

  const ConstantVariableForKeyName = 'key';
  const params = new HttpParams({
  fromObject : {
    {{ConstantVariableForKeyName}}: 'paramValue'
  }
});

1 个答案:

答案 0 :(得分:2)

HttpParams类是不可变的,因此任何添加或追加操作都将返回一个新对象。因此,您的params变量不能是 const ,请将其更改为 let

然后,只需在每次需要操作时将参数设置为返回值:

let params = new HttpParams({
  fromObject : {
    requiredParam: 'requiredParam'
  }
});
    if (addOptionalParam)
          params = params.append('optionalParamKey', 'optionalParamValue');

关于第二个问题,请使用set或append,如下所示:

const constParamKey = 'myKey';
 params = params.append(constParamKey , 'Value');
相关问题