Угловой выбор нг подтвердить выбор - PullRequest
0 голосов
/ 16 ноября 2018

У меня есть поле выбора ng-select и кнопка Apply, которая подтверждает выбор. Существует объект Person , который имеет id и name , и все имена отображаются в раскрывающемся списке, чтобы пользователь мог выбрать .

Идея состоит в том, что пользователь выбирает имя (в то время как он может печатать для фильтрации результатов), а затем подтверждает, отправляя выбранный параметр на сервер и сохраняя его в базе данных.

Проблема в том, что вместо выбора варианта из отфильтрованных результатов пользователь также может ввести недопустимый ввод (несуществующее имя) и подтвердить. Я не хочу, чтобы это произошло.

Я хотел бы отключить кнопку «Применить», если ввод недействителен (это означает, что он не был выбран из результатов И он не соответствует ни одному из результатов, в случае, если пользователь только правильно набрал имя и не нажал кнопку) на это в выпадающем списке). Как я могу это сделать?

Вот мой код:

<ng-select [items]="allPersons" [(ngModel)]="currentPersonId" 
    bindLabel="name" bindValue="id"
    (change)="storeNewPersonName($event)">
</ng-select>
<button (click)="updatePerson()">
    <strong>Apply</strong>
</button>

функция storeNewPersonName ($ event) вызывается каждый раз, когда пользователь выбирает имя из выпадающего списка . Он хранит имя в переменной. Затем в updatePerson () эта переменная преобразуется в объект Person и отправляется на сервер.

ТЛ; др

Так что в основном мне нужно взять текущий ввод как пользовательский тип, сравнить его со всеми существующими именами лиц (которые я храню в массиве) и отключить кнопку подтверждения, если ввод не совпадает или пуст, включив это иначе.

Есть идеи? Спасибо за помощь.

...