условие внутри цикла Ngfor

#angular7

#angular7

Вопрос:

*ngFor=»!FieldAdvicelength amp;amp; пусть fA FieldAdvice; пусть id =индекс»

Когда я использую *ngfor это, возникает ошибка, мне нужно, чтобы цикл for применялся только тогда, когда длина FieldAdvice больше нуля. Как это сделать?

 <tr [ngClass]="{'tableheadings':isOther,'faheadings':isfieldasst}" 
   *ngFor="let fA of FieldAdvice ; let id =index">
                                    
   <td *ngIf="FieldAdvicelength amp;amp; RoleId=='AD' amp;amp; !el.IsChecked?true:RoleId=='AD' amp;amp; (enableEdit amp;amp; enableEditIndex==el.name i)">
      <input type="text"  class='inputtext' formControlName="Advice"   placeholder="Type Advice here">
   </td>
   <td *ngIf="FieldAdvicelength amp;amp; RoleId=='AD'?false:((RoleId=='EP'|| RoleId=='AD'|| RoleId=='FA' || RoleId=='FR' ) amp;amp; (RoleId!=='AD' || !enableEdit || enableEditIndex !==el.name i)) amp;amp; !el.IsChecked">
      <span style="color:grey" *ngIf="fA.advice==''">Type Advice here</span> 
      <span style="color:grey"> {{fA.advice}}</span> 
   </td>
 

Мне нужно отобразить эти строки, хотя FieldAdvicelength равно нулю, но цикл ngfor должен применяться только к FieldAdvicelength больше нуля

Ответ №1:

Удалите условие из вашего *ngFor и добавьте *ngIf="!FieldAdvicelength" в свой тег.

 <div *ngIf="!FieldAdvicelength" *ngFor="let fA of FieldAdvice ; let id =index">
...
</div>
 

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

1. Если необходимо пропустить всю строку, поместите *ngIf в <tr> тег. Если ячейка должна быть пропущена, поместите *ngIf на <td> . Убедитесь, что значение FieldAdvicelength действительно является правильным значением. Может быть, сделать его более подробным, вставив FieldAdvicelength > 0 .

2. Кроме того, если есть ошибка, пожалуйста, укажите указанную ошибку.