У меня есть ряд mat-chexboxes, которые создаются с помощью цикла ngFor.
<div class="permission-one" *ngFor="let permission of permissions">
<mat-checkbox [disabled]="(!isEdit && userIndex !== i) || (isEdit && userIndex !== i)" [checked]="isChecked(fauxUser.userId, permission)" (change)="checkboxSelected($event, permission.code)"></mat-checkbox>
</div>
Чтобы увидеть, нужно ли устанавливать этот флажок при создании, я вызываю isChecked (), который выглядит следующим образом:
isChecked(userId: number, permission: Permission): boolean {
this.adminService.getUserAccess(this.companyId, userId)
.subscribe((userAccessRes: UserPermission) => {
for (const special of userAccessRes.specialPrograms) {
if(special.programCode === permission.code && special.userAccessId !==0)
{
return true;
} else {
return false;
}
}
});
}
Однако из-за вложенности с подпиской я не могувыяснить, как вернуть возвращаемое значение оператора if на соответствующий уровень, чтобы вернуть его для функции.Прямо сейчас моя ошибка: «Функция, объявленный тип которой не является ни void, ни any, должна возвращать значение».Можно ли использовать функцию, которую я имею для моей желаемой функциональности?любые советы / предложения будут высоко ценится