У меня есть вход с множественным выбором. Я хочу подтвердить, что что-то выбрано. В нормальном случае я использую
Validators.required (builder: [[], Validators.required])
но в отношении документации этот метод работает так:
this._required = value != null && value !== false && `${value}` !== 'false';
ссылка , так что это всегда возвращает, что это поле заполнено, потому что у меня есть здесь массив.
У вас есть идея, как проверить это с помощью Validators.pattern или сделать это по-другому?
Это мой файл hmtl:
<ng-template [ngSwitchCase]="'multiselect'">
<div class="selector-holder overflowable" [ngStyle]="{'z-index': 50 - zIndex}" [ngClass]="{'has-errors': hasErrors(editForm.get(i).get(element)), 'disabled': editForm.get(i).get(element).disabled}">
<ng-select [allowClear]="false" [multiple]="true"
[disabled]="editForm.get(i).get(element).disabled"
[items]="formDefinition[i].fields[element].options"
[active]="getMultiValues(editForm.get(i).get(element))"
(selected)="setSelected(editForm.get(i).get(element), $event)"
(removed)="setRemoved(editForm.get(i).get(element), $event)"
placeholder="{{'select' | translate}}">
</ng-select>
<app-form-field-error [control]="editForm.get(i).get(element)"></app-form-field-error>
</div>
А это мой файл TS:
type type: 'multiselect',
builder: [[], Validators.required],
options: [
{
id: 1,
text: _('Text 1')
},
{
id: 2,
text: _('Text 2')
},
{
id: 3,
text: _('Text 3')
},
И в этом случае, когда ничего не выбрано, у меня нет ошибки, но я хочу иметь.