Как обновить таблицу на основе ответа API в angular

#angular #typescript

#angular #typescript

Вопрос:

У меня есть форма, в которой я выбираю события из выпадающего списка и выбираю данные. На основе даты он извлекает количество событий, произошедших на эту дату. Когда я выбираю событие и выбираю дату, если события есть, он выдает список событий в разделе «Все события». Но когда я меняю дату, на которую не происходит никаких событий, раздел «Все события» не обновляется и выдает предыдущее значение, поступающее из api. Как обновить данные в html на основе ответа api??

component.html код

           <form [formGroup]="viewForm" (ngSubmit)="infoSubmit(viewForm.value)">
      <div class="form-group row">
        <div class="col-md-6 txt-box">
          <select type="number" class="form-control" 
     formControlName="Name">
            <option value="">Events</option>
            <option *ngFor="let Name of listOfEvents"
              type="number" [ngValue]="Name.Id" >
              {{ Name.Name }}
            </option>
          </select>
        </div>
      </div>
      <div class="form-group row">
        <div class="col-md-12 txt-box">
          <div class="dateTime row">
            <div class="col-md-3 txt-box">
              <input formControlName="dateStart" [owlDateTime]="dt1"                   
              placeholder="Start Date"/>
              <span [owlDateTimeTrigger]="dt1"><i class="fa fa-calendar"></i></span>
              <owl-date-time [showSecondsTimer]="true" #dt1></owl-date-time>
               </div>
              </div>
        </div>
      </div>
      <button class="a-btns btn btn-success tab-btn"  type="submit" >
        Submit
      </button>
           <div class="row">
               <table class="table tabs links">
              <thead>
                <tr>
                  <th>All Events</th>
                 </tr>
              </thead>
              <tbody>
                <tr *ngFor="let file of AllEventList"> </tr>
              </tbody>
            </table>
          </div>
           </form>
 

component.ts код

       logInfoSubmit(v) {   
   const Id = v.Name;   
if (this.viewForm.valid) {
const dateTime = this.viewForm.value;
let startTimeDate = dateTime.dateStart.toISOString();
const Info = {
  PathDirectory: this.tempLog,
  StartDate: startTimeDate     
};    
this.service.getView(Id,Info).subscribe((res: any) => {
 
  if(res.payload == ''){
   
    this.toastrService.info(res.message);
  }
  else{
    this.AllFileList = res.payload;

    this.toastrService.info(res.message);
  }
  });
 } 
 }
 

Ответ №1:

Насколько я понимаю, вы вызываете свою службу только для получения событий один раз.

Добавьте свойство (onClick) к кнопке отправки и снова вызовите свою службу с новой датой начала.