angular - 下拉菜单中的搜索灵敏度(ng-select,角度)
问题描述
我将ng-select与城市列表一起使用,如下所示:
cities = [
{id: 1, name: 'MA, Boston'},
{id: 2, name: 'FL, Miami'},
{id: 3, name: 'NY, New York', disabled: true},
{id: 4, name: 'CA, Los Angeles'},
{id: 5, name: 'TX, Dallas'}
];
在选择字段中,如果我键入“MA,B”,则该字段过滤为“MA,波士顿”,这是正确的。
但是,如果我输入“MA Boston”,该字段不会显示任何结果(许多用户可能会错过逗号)。
有没有办法让搜索功能忽略逗号,或者对它们不那么敏感?
这是上面示例的堆栈闪电战:
解决方案
这样做的一个快速技巧是将所有逗号替换为空字符串。
首先,在您的 component.html 上,您需要searchFn
使用您自己的自定义搜索函数传递输入属性绑定。
<ng-select
[items]="cities"
[searchFn]="customSearchFn"
bindLabel="name"
placeholder="Select city"
[(ngModel)]="selectedCity">
</ng-select>
然后,在您的 component.ts 上,您将customSearchFn
使用以下方法进行定义。这是一个快速的 hack,但我所做的是将逗号替换为该特定对象的空字符串。例如 MA,Boston 将成为 MA Boston。
customSearchFn(term: string, item) {
item.name = item.name.replace(',','');
term = term.toLocaleLowerCase();
return item.name.toLocaleLowerCase().indexOf(term) > -1;
}
推荐阅读
- java - 在 pdf 中编写阿拉伯语文本注释
- excel - Determining GroupBox from OptionButton errors out but expanding variable properties in locals window fixes issue
- python - Python + Sqlite 3 query with multiple conditions
- c# - Word 互操作和遍历形状对象以查找文本框
- api - websockets 可以替代 HTTP 吗?
- java - 如何更改按钮的颜色,而不仅仅是它周围的边框?
- python - django注释是否存在
- python - forcing a creation of 1d numpy array from a list/array of possibly iterable objects
- android - 开始任何新活动时出现 ClassNotFoundException
- bash - 参数扩展默认值为空数组