Привет, ниже приведен фрагмент кода в моем угловом HTML-файле.Я пытаюсь реализовать if elseif (условие) elseif (условие), используя ngif
и ng-container
.
То, чего я хочу добиться, - это только один блок кода, который должен напечатать ошибку.Другими словами, я не хочу печатать два сообщения об ошибках.Я не знаю, почему мой код не работает.
Например, в настоящее время, если formGroup.hasError('invalidPasswordStrength')
и formGroup.hasError('blacklistedPassword')
имеют значение true, выводятся два сообщения об ошибках.
Я ожидаю, что если они оба верны, я хочу напечатать сообщение об ошибке, относящееся к formGroup.hasError('invalidPasswordStrength')
.
Я пробовал варианты, подобные этой, например:
*ngIf="formGroup.hasError('passwordConfirmation') && !(formGroup.hasError('invalidPasswordStrength') || formGroup.hasError('blacklistedPassword'))
.
Работает, но не чисто
<ng-container *ngIf="formGroup.hasError('passwordConfirmation'); else second">
<alert type="danger" dismissable="false">
{{ 'VALIDATION.ERRORS.MATCHING_PASSWORDS' | translate }}
</alert>
</ng-container>
<ng-container #second *ngIf="formGroup.hasError('invalidPasswordStrength'); else third">
<alert type="danger" dismissable="false">
{{ 'VALIDATION.ERRORS.PASSWORD_STRENGTH_INVALID' | translate }}
</alert>
</ng-container>
<ng-container #third *ngIf="formGroup.hasError('blacklistedPassword'); else fourth">
<alert type="danger" dismissable="false">
{{ 'VALIDATION.ERRORS.PASSWORD_NOT_PERMITTED' | translate }}
</alert>
</ng-container>
<ng-container #fourth *ngIf="formGroup.hasError('passwordMatchingUserDetails')">
<alert type="danger" dismissable="false" >
{{ 'VALIDATION.ERRORS.PASSWORD_MATCHING_USER_DETAILS' | translate }}
</alert>
</ng-container>