Matautocomplete - добавить новый объект, если введенное значение отсутствует в списке - PullRequest
0 голосов
/ 15 октября 2019

У меня есть поле ввода, где пользователь может ввести любой текст. Когда пользователь печатает, появляется панель автозаполнения с выделенной опцией.

Я хочу сделать следующее:

  1. Если пользователь вводит что-то, что не совпадает ни с чем полностью, опция в автозаполнении должна показывать: «создать новый. .. "

  2. После выбора" создать новый ... "я смогу сохранить введенное пользователем значение ввода вместо того, чтобы изменить его на" создать новый ... ".

Для пункта 1 в фильтры я помещаю «создать новый ...» вручную, если критерии удовлетворены, со значением -1.

Я не уверен, как обращаться с пунктом 2. Фрагмент кода:

TS:

  onCategorySelectionChanged(event, category?: Category) {
    console.log('first...on category selected');
    console.log(event.source.value);
    console.log(event.source.viewValue);

    if (category.id === -1) {
      console.log('retain the input value here...');
    }
  }

HTML:

<input [matAutocomplete]="autoCategory" 
formControlName="documentCategory"
matInput
type="text"
(blur)="categoryNameOnBlur()"
>
<mat-autocomplete #autoCategory="matAutocomplete" [displayWith]="displayCategoryFn"
autoActiveFirstOption
>
<mat-option *ngFor="let category of filteredCategories | async" [value]="category"
                          (onSelectionChange)="onCategorySelectionChanged($event, category)">{{category.name}}
</mat-option>
</mat-autocomplete>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...