Как искать несколько полей в ng-select? - PullRequest
0 голосов
/ 11 июня 2019

Я хочу объединить два поля API " код и имя " в раскрывающемся списке ng-select.Например: -

  Code       : MI

  name       : MI 3sPrime

 Format      : MI - MI 3sPrime

Я использовал приведенный ниже код для выпадающего списка

Component.Html

<ng-select [items]="products" bindLabel="code" bindValue="id"
                placeholder="Select Goods Receipt" clearAllText="Clear" formControlName="productId" [searchFn]="customSearchFn">

                  <ng-template ng-label-tmp let-item="item">
                    <span [ngOptionHighlight]="search">{{ item.code }} - {{ item.name }}</span>
                  </ng-template>

                  <ng-template ng-option-tmp let-item="item" let-search="searchTerm" let-index="index">
                    <span [ngOptionHighlight]="search">{{ item.code }} - {{ item.name }}</span>
                  </ng-template>

</ng-select>

Component.ts

  customSearchFn(term: string, item: any) {
    term = term.toLocaleLowerCase();
    return item.code.toLocaleLowerCase().indexOf(term) > -1 || 
    item.name.toLocaleLowerCase().indexOf(term) > -1;
 }

Поиск: При поиске выбирается код и имя.Но я хочу найти код, имя и заданный формат (Код - имя)

Ниже приведены диаграммы

enter image description here

Здесь,Пока я ищу "MI -" , Поиск не работает

enter image description here

Поиск должен применяться для формата code -имя .. Что означает, что когда я печатаю MI - , фильтрация должна работать.Есть ли способ?Кто-нибудь может мне помочь?

1 Ответ

1 голос
/ 11 июня 2019

попробуйте

  customSearchFn(term: string, item: any) {
    term = term.toLocaleLowerCase();
    return item.code.toLocaleLowerCase().indexOf(term) > -1 || 
    item.name.toLocaleLowerCase().indexOf(term) > -1 || 
    (item.code + " - " + item.name).toLocaleLowerCase().indexOf(term) > -1;
 }
...