У меня проблема с hasError в mat-form-field. Вот мой код
<mat-form-field class="mat-form-field-design">
<mat-label>{{
'SETTINGS.NOTIFICATION.DAYS_SEND_LABEL' | translate
}}</mat-label>
<mat-select formControlName="daysSend" multiple required>
<mat-option *ngFor="let currentDays of days" [value]="currentDays">
{{'COMMON.DAYS.' + currentDays | translate}}
</mat-option>
</mat-select>
<mat-error *ngIf="hasError(form?.get('hourSend'), 'hoursSend', 'required')">
{{ 'COMMON.ERRORS.DAYS_REQUIRED' | translate }}
</mat-error>
</mat-form-field>
С этими кодами сообщение под полем не отображается, но с этими кодами оно работает
<mat-form-field class="mat-form-field-design">
<mat-label>{{
'SETTINGS.NOTIFICATION.DAYS_SEND_LABEL' | translate
}}</mat-label>
<mat-select formControlName="daysSend" multiple required>
<mat-option *ngFor="let currentDays of days" [value]="currentDays">
{{'COMMON.DAYS.' + currentDays | translate}}
</mat-option>
</mat-select>
<mat-error *ngIf="form.get('daysSend').errors && form.get('daysSend').touched">
{{ 'COMMON.ERRORS.DAYS_REQUIRED' | translate }}
</mat-error>
</mat-form-field>
Если у кого-то была такая же проблема и она была исправлена , скажи мне свое решение. Вот мой метод hasError, который просто вызывает собственный метод hasError.
public hasError(form: AbstractControl, fc: string, validator: string) {
if (!form || !fc || !validator || !form.get(fc)) {
return false;
}
return form.get(fc).hasError(validator);
}
(я указываю с mat-form-field без mat-select все отлично работает) example =>
mat-form-field class="art-form-field-full-width">
<mat-label>{{'SETTINGS.MAIN.APPEARANCE.DASHBOARD_QUOTE_LABEL' | translate}}</mat-label>
<input matInput
[id]="'appearance-dashboard-band-quote' + lang.value"
[placeholder]="'SETTINGS.MAIN.APPEARANCE.DASHBOARD_QUOTE_PLACEHOLDER' | translate"
formControlName="dashboardBandQuote"
required/>
<mat-error *ngIf="hasError(form?.get(lang.value), 'dashboardBandQuote', 'required')">{{
'COMMON.ERRORS.REQUIRED' | translate
}}</mat-error>
</mat-form-field>
Спасибо!