Угловой валидатор для проверки наличия массива - PullRequest
0 голосов
/ 10 мая 2018

У меня есть вход с множественным выбором. Я хочу подтвердить, что что-то выбрано. В нормальном случае я использую

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')
                    },

И в этом случае, когда ничего не выбрано, у меня нет ошибки, но я хочу иметь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...