@zachfischer

Как правильно написать условие?

Есть вот такое условие для sql
'spr_priority_id IS NOT NULL AND n_users_id = ? AND priority_itog = ? AND YEARS = ?'
У меня куча записей в json-файле (не которые из них могу повторятся).
Проблема в том что условие которое я написал в Angular по подобию условию из sql то ли не работает то ли я его написал не правильно. Из ходя из этого условию по фильтру "года" в таблицу должна вывестись одна запись, но у меня выводятся 6 записей и они одинаковы. В json эти записи тоже есть, но в другой программе (реализована на rails и js) по этому же условию выводится только одна запись с таким же фильтром и json.

Посмотрите что не так я написал в этом условии
*ngIf="(monitoring.spr_prioritys_id) != null  && (monitoring.n_users_id)   && (monitoring.priority_itog) "
. Точно я не добавил в условие дату на это можно не обращать внимание я для этого использую фильтр.

Вот полный код:

<table class="table table-hover">
  <thead>
    <tr>
       <th style="text-align: center;">Имя</th>
       <th style="text-align: center;">Общее кол-во </th>
       <th style="text-align: center;">Выполнено</th>
       <th style="text-align: center;">Не выполнено</th>
    </tr>
  </thead>
   <tbody>
   <ng-container *ngFor="let monitoring of filteredMonitorings" > 
        <ng-container *ngIf="(monitoring.spr_prioritys_id) != null  && (monitoring.n_users_id)   && (monitoring.priority_itog) " >
            <tr >
              <td style="text-align: center">{{monitoring.name}}</td>
              <td style="text-align: center">{{monitoring.count}} </td>
              <td style="text-align: center">{{monitoring.monitoring_apply}} / {{monitoring.monitoring_apply_percent}} %</td>
              <td style="text-align: center">{{monitoring.monitoring_no_apply}} / {{monitoring.monitoring_no_apply_percent}} %</td>   
             </tr>
           </ng-container>
         </ng-container>
       </tbody>
</table>
  • Вопрос задан
  • 64 просмотра
Решения вопроса 1
EreminD
@EreminD
Кое-что умею
А почему бы вам сразу в том месте, где вы заполняете filteredMonitorings не филтрануть всю коллекцию?
this.monitoringsService.getFilteredMonitorings().subscribe(rows =>
      this.filteredMonitorings = rows
        .filter(monitoring => monitoring.spr_prioritys_id)
        .filter(monitoring => monitoring.n_users_id)
        .filter(monitoring => monitoring.priority_itog));


Я этот вопрос задал исходя из вашей строки
*ngIf="(monitoring.spr_prioritys_id) != null  && (monitoring.n_users_id)   && (monitoring.priority_itog) "

Ведь вы здесь проверяете, что monitoring.spr_prioritys_id не null, и что monitoring.n_users_id и monitoring.priority_itog также не являются null или 0
согласно https://dorey.github.io/JavaScript-Equality-Table/
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы