Angular — как отобразить элемент и отсортировать с помощью флажка с помощью API

#javascript #angular #typescript

#javascript #angular #typescript

Вопрос:

Я хотел бы использовать флажок для отображения элементов в таблице, для которой установлен статус «ошибка» при возврате вызова API json.

Json отправляет мне что-то вроде этого, с вложенными элементами:

 {
  "type": "firstEl",
  "firstTeam": {
    "date": "2020-10-14T14:36:12.859Z",
    "item": {
      "organizationCode": "THUG",
      "status": "success"
    },
    "secondTeam": {
      "date": "2020-10-14T14:36:12.859Z",
      "item": {
        "organizationCode": "THUG",
        "status": "success"
      }
    }
  }
}
  

Я пытался сделать что-то подобное, но пока безуспешно (ничего не отсортировано) :

TS :

 onlyError = false;
    
selectErrors() {
  this.onlyError = !this.onlyError;
}
  

HTML :

 <div class="custom" (click)="selectErrors()" style="width:150px">
    <input type="checkbox" [checked]="onlyError">
    <label container="body">
        <div class="content">
            <div>Only error</div>
        </div>
    </label>
</div>

...

<tr *ngFor="let property of property$ | async " class="row">
  <td class="cell">
      <div class="u-font--bold u-pointer d-flex justify-content-between">
          {{property.firstTeam.item.status}}
      </div>
  </td>
  <td class="cell">
      <div class="u-font--bold u-pointer d-flex justify-content-between">
          {{property.secondTeam.item.status}}
      </div>
  </td>
</tr>
  

Я пробовал много вещей, например, сделать что-то подобное в сервисе :

 transform(error: boolean) {
    return myApiUrl.filter(l => {
        let keep = true;

        if (!error) {
            keep = l.firstTeam.status === 'success' || _.get(l, 'secondTeam.status', '') === 'success' 
        } else {
            keep = l.firstTeam.status === 'error' || _.get(l, 'secondTeam.status', '') === 'error'
        }

        return keep;
    });
}
  

безуспешно. Я пытаюсь найти самый простой подход к фильтрации моих данных по статусу, когда команда получила его, и иметь возможность отображать только команды с сообщением об ошибке.

Может кто-нибудь помочь мне с этим? Спасибо.

Комментарии:

1. пожалуйста, создайте демонстрацию в stackblitz

2. Пожалуйста, также поделитесь примером массива свойств

3. Я думаю, что у меня его нет. Вот как я вызываю свой серверный сервер: listProperties() { return this.http .get<any[]>( ${this.gateway.getUrl()}/properties ) .map((o) => { return o; })

4. Будет проще помочь с информацией или, по крайней мере, демонстрацией, как указано @brk