如何在 ng-select 中搜索多个字段?
How to search multiple fields in ng-select?
我想在 ng-select 下拉列表中合并两个 API 字段“code 和 name”。
例如:-
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;
}
正在搜索: 正在搜索时获取代码和名称。但我想搜索代码、名称和给定格式(代码 - 名称)
下面是图表
在这里,当我搜索 "MI -" 时,搜索不起作用
搜索应适用格式 code - name..这意味着当我输入 MI - 时,过滤必须起作用。
有什么方法吗?有人可以帮助我吗?
试试这个
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;
}
我想在 ng-select 下拉列表中合并两个 API 字段“code 和 name”。 例如:-
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;
}
正在搜索: 正在搜索时获取代码和名称。但我想搜索代码、名称和给定格式(代码 - 名称)
下面是图表
在这里,当我搜索 "MI -" 时,搜索不起作用
搜索应适用格式 code - name..这意味着当我输入 MI - 时,过滤必须起作用。 有什么方法吗?有人可以帮助我吗?
试试这个
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;
}