У меня угловое приложение с реактивными формами. Я использую нг-зорро в качестве основы пользовательского интерфейса. Есть случай, когда клиент может открыть форму, которая стала недействительной во время его рабочего процесса в приложении.
Проблема в том, что угловая метка помечает форму как недействительную, но сообщения об ошибках не отображаются из ng-zorro, пока не будет затронут элемент управления формы.
function validateEmail(c: FormControl) {
const URL_REGEX = /^(?:http(s)?:\/\/)?[\w.-]+(?:\.[\w\.-]+)+[\w\-\._~:/?#[\]@!\$&'\(\)\*\+,;=.]+$/;
return URL_REGEX.test(c.value) ? null : {
validateEmail: true
};
}
<nz-form-item>
<nz-form-label
nzXXl="3"
nzXl="4"
nzLg="6"
nzMd="7"
nzSm="10"
nzXs="24"
nzFor="videoLink"
nzRequired>
Video Link
</nz-form-label>
<nz-form-control
nzXXl="21"
nzXl="20"
nzLg="18"
nzMd="17"
nzSm="14"
nzXs="24"
nzHasFeedback
[nzErrorTip]="videoErrorTpl"
>
<input nz-input formControlName="videoLink" maxlength="150"/>
<ng-template #videoErrorTpl let-control>
<ng-container *ngIf="control.hasError('required')">
required
</ng-container>
<ng-container *ngIf="control.hasError('validateEmail')">
Please enter a valid URL
</ng-container>
</ng-template>
</nz-form-control>
</nz-form-item>