#angular
Вопрос:
У меня есть приведенный ниже код, который должен отображать раздел, только если статус «Ожидает» во всех выбранных элементах.
<ng-container *ngIf="selectedAlerts.length amp;amp; selectedStatus[0] === 'PENDING'">
<span class="md-margin__right--xs md-padding__left--l inline-block text-divider">
{{ selectedAlerts.length }} Job(s) Selected
</span>
<button md-button [size]="28"
aria-label="Cancel" class="md-margin__horizontal--s" color="red" (click)="cancel()">
Cancel
</button>
</ng-container>
В настоящее время я могу проверить только первый элемент в массиве:
*ngIf="selectedAlerts.length amp;amp; selectedStatus[0] === 'PENDING'"
Как мне проверить его для всех selectedStatus
элементов массива?
Комментарии:
1. Напишите функцию в файле ts, в которой вы повторяете все элементы и устанавливаете флаг true, когда все находятся в ожидании. Пусть ngIf основан на этой переменной флага.
2. Вы можете добавить функцию в свой *ngIf
*ngIf="checkSelectedItemsStatus()"
, и в этой функции вы можете возвращать статус на основе выбранных элементов.
Ответ №1:
Я бы предложил вам сделать свою логику в ts
файле (метод, который будет вызван в шаблоне)
и чтобы ответить на ваш вопрос, вы можете проверить все элементы в массиве, используя один из встроенных методов массива:
например:
проверьте, все ли товары находятся на рассмотрении:
selectedStatus.every(item => item === 'PENDING')
проверьте, находится ли на рассмотрении хотя бы один пункт:
selectedStatus.some(item => item === 'PENDING')
для получения дополнительной информации ознакомьтесь с этими документами:
Ответ №2:
Вы можете использовать метод Array includes (), чтобы проверить, содержит ли какой-либо из элементов вашего массива строку «ОЖИДАНИЕ», как это:
<ng-container *ngIf="selectedAlerts.length amp;amp; selectedStatus.includes('PENDING')">