#angular #routeparams
#angular #параметры маршрута
Вопрос:
У меня проблема с параметрами. Я использую метод filter для получения каждого ключа, значения из разных компонентов (формы).
Проблема в конечном результате.
filterTable(filters: { data: any; isReset: boolean }) {
let params = new HttpParams();
for (const key in filters.data) {
if (Object.prototype.hasOwnProperty.call(filters.data, key)) {
const jsonData = JSON.stringify({ drilldown: { [key]: { op: 'EQ', value: filters.data[key] } } });
params = params.append('filter', jsonData);
}
}
Есть ли способ, как я мог бы не добавлять в запрос params ключ с нулевым значением?
Ответ №1:
Если вы хотите удалить весь фильтр, просто добавьте это условие в свой if : filters.data[ключ]
for (const key in filters.data) {
if (Object.prototype.hasOwnProperty.call(filters.data, key) amp;amp; filters.data[key]) {
const jsonData = JSON.stringify({ drilldown: { [key]: { op: 'EQ', value: filters.data[key] } } });
params = params.append('filter', jsonData);
}
}
Комментарии:
1. я хочу удалить все значения, которые равны null. Таким образом, в parrams был бы только, например, filter: {«детализация»: {«L_BRAND»:{«op»: «EQ», «value»: «test»}}}
2. Извините. Но теперь я пробую это, и это именно то, что мне нужно. Собираюсь пометить это как resolve. Ty
3. это лучше использовать
filters.data[key] !== null
? потому что, если значение равно 0, оно также не будет установлено