#html #angular #html-lists #angular-ng-if
#HTML #угловой #html-списки #angular-ng-if
Вопрос:
Я работаю над приложением angular. Я пытаюсь создать список и проверить условие в своем <li>
теге. Когда условие не выполняется, я не хочу создавать элемент. Мой код
<ul>
<li [style.visibility]="data.First == 'Y' ? 'visible' : 'hidden'">
<span>
First Item
</span>
</li>
<li [style.visibility]="data.Second == 'Y' ? 'visible' : 'hidden'">
<span>
Second Item
</span>
</li>
</ul>
Когда условия не выполняются, элемент не добавляется в список, но для этой строки создается пустое пространство. Как мне избежать создания пустой строки? Я также пробовал использовать *ngIf, но это не помогло.
Ответ №1:
Вот как работает видимость, чтобы избежать попытки пустой строки
<li [style.display]="data.Second == 'Y' ? 'block' : 'none'">
Ответ №2:
Вы можете добиться этого с помощью *ngIf
. Проверьте приведенный ниже код. если результат вашего условия истинен, angular создает или добавляет элемент ( <li>
элемент), в противном случае этот элемент пропущен.
<ul>
<li *ngIf="data.First == 'Y'">
<span>
First Item
</span>
</li>
<li *ngIf="data.Second == 'Y'">
<span>
Second Item
</span>
</li>
</ul>
Ответ №3:
Если вы хотите вывести список длиной n, я бы рекомендовал что-то вроде этого:
<ul>
<ng-container *ngFor="let entry of data; let index = index">
<li *ngIf="entry.myParameter == 'Y'">
<span>{{ index }} item</span>
</li>
</ng-container>
</ul>