Условное добавление параметров с использованием HttpParams и FromObject и использование переменной для имени ключа
Есть ли способ условно добавить параметр, используя 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 ответ
Решение
Класс 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');