autocomplete - 如果值与任何单词的起始字母匹配,则角度材料自动完成应显示选项
问题描述
第一个键入的字母应与下拉列表中结果的每个单词的第一个字母匹配。
目前我正在匹配选项中的任何字母,如下所示,但我应该只匹配选项中任何单词的起始字母。
我目前的逻辑如下,
返回 this.allUniversities.filter(university => university.toLowerCase().indexOf(filterValue) > -1);
如果列表中的条目是 Industrial Designer,则该条目应在候选人键入字母 I 或字母 D 时显示。如果候选人键入字母“N、D、U、S”等,则不应显示该条目。
解决方案
您需要做的就是拆分字符串,然后检查子字符串是否以键入的字符开头:
return this.allUniversities.filter(university => {
return university.toLowerCase().split(' ').some(substr => substr.startsWith(filterValue));
});
这 是一个堆栈闪电战,展示了它的实际效果。
推荐阅读
- linux - 如何在 linux 中离线安装 dlib?
- c++ - 有什么方法可以在 C++ 中进行 round(a, n) 吗?
- azure-devops - Azure Pipeline - 在多个 json 文件中转换相同的密钥
- node.js - 无法使用外部 IP (Ubuntu) 访问 Node.js
- prolog - 使用 maplist/2,3,4
- verilog - 调用另一个模块的最佳方法是什么?
- javascript - 为什么 Promise 不使用 setTimeout 显示数据?
- python - 当 pip 安装 xmlsec 时收到“错误:xmlsec1 未安装或不在路径中。”
- java - 将firebase与我的代码连接后出现构建错误
- python - 如何计算图像属性,例如面积、周长、实心度