Получить параметры Angular

#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, оно также не будет установлено