Угловой набор неопределенного значения в таблице с OnChanges - PullRequest
0 голосов
/ 27 ноября 2018

Я не понимаю, почему мое значение интервью.InterviewID не определено в моей таблице:

 <table class="table table-striped table-interviews">
    <tbody>
    <tr *ngIf="listInterview && listInterview.length !== 0">
      <th>InterviewID</th>
    </tr>
    <tr *ngFor="let interview of listInterview">
      <td> 
      <input type="text" name="commentaire" id="interviewID" class="form-control" [(ngModel)]="interview.InterviewID">
      </td>
    </tbody>
  </table>

Он вызывается в родительском компоненте так:

 <div *ngIf="personnelSelected" class="modal modal-default fade" id="modal-interviews">
    <div class="modal-dialog modal-lg">
      <div class="modal-content">
        <div class="modal-header">
          <button type="button" class="close" data-dismiss="modal" aria-label="Close">
            <span aria-hidden="true">×</span>
          </button>
          <h4 class="modal-title">
            <i class="fa fa-pencil"></i>
            Individual Interviews
          </h4>
        </div>
        <app-interviews [personnel]="personnelSelected"></app-interviews>
      </div>
    </div>
  </div>

, где staffSelectedполучает значение из метода OnSelect в этом родительском компоненте.Вот как работает компонент интервью:

 @Component({
  selector: 'app-entretiens',
  templateUrl: './entretiens.component.html',
  providers: [ EntretiensService ]
 })
 export class EntretiensComponent implements OnChanges{
  @Input() personnel: PersonnelInfo;
  listInterview: Interview[];

  ngOnChanges() {
   this.interviewService.get({where: 'personnelInterviewedID=' + this.personnel.id})
    .subscribe((interviews: Interview[]) => {
      this.listInterview = Interviews;
    });
   }
  }

Функция интервьюService.get вызывает API с условием where.Но это не проблема.Я думаю, что есть проблема с тем, как я использую метод OnChanges, но я пока не понимаю этого.Не могли бы вы просветить меня?

1 Ответ

0 голосов
/ 27 ноября 2018

Здесь:

<table class="table table-striped table-interviews">
    <tbody>
    <tr *ngIf="listInterview && listInterview.length !== 0">
        <th>InterviewID</th>
    </tr>
    <tr *ngFor="let interview of listInterview">
        <td> 
            <input type="text" name="commentaire" id="interviewID" class="form-control" [(ngModel)]="interview.InterviewID">
        </td>
    </tbody>
</table>

ваш ngFor находится за пределами вашего заявления ngIf.Поэтому, если listInterview пусто или равно нулю, undefined - ожидаемый результат

...