angular - 任何带有 Angular 自动完成功能的文本框库?
问题描述
我希望为我开始输入的每个单词实现一个带有自动完成功能的文本框。根据上下文,每个单词都来自不同的来源。基本上,它是大多数现代 IDE 中存在的功能。
我从 VS 代码创建了一个视频来说明我在说什么:https ://recordit.co/mk1yY0yBy9
是否有任何库可以与 Angular 一起使用这种功能?
解决方案
我想说你可以自己实现一个不错的小部件,因为我没有找到这样的包,我创建了一个非常简单的启动代码,可以满足你的要求。(数据保存为 json 对象)工作原型。
模板:
<input [(ngModel)]="selectedLevel" (keyup)="changed()" />
<div *ngFor="let option of currentOptions" (click)="setOption(option)">
{{option}}
</div>
脚本
root = {
array: {
remove:{
element:{}
}
},
args: {},
other: {}
};
selectedLevel = '';
currentOptions = [];
changed(){
let levels = this.selectedLevel.split('.');
let crawl = this.root;
while(levels.length > 0){
let current = levels[0];
let test = crawl[current];
if(test) crawl = test;
this.currentOptions = Object.keys(crawl).filter(x=>x.includes(current));
levels.shift();
}
}
setOption(option){
let index = this.selectedLevel.lastIndexOf('.');
if (index == -1){
this.selectedLevel = option;
} else {
this.selectedLevel = this.selectedLevel.substring(0,index) + '.' + option;
}
this.changed();
}
推荐阅读
- spring-boot - 是否有将 Kafka 数据发送到 AMQP/MQTT 的桥接器?
- google-sheets - 汇总 Google 表格中的合并单元格
- exchangewebservices - 更改的项目 ID 和附件 ID
- git - 如何删除前 N 个提交?
- sql - where子句和join的区别
- javascript - 下拉列表中的剑道文本框
- python - 我如何只训练新的重量?
- html - 如何在 Angular JS 中通过 URL 调用 JSON 数据
- actions-on-google - 对 Google 的操作有效,但 Dialogflow 代理已损坏
- swift - Swift - WKWebView 和 itms-services(又名打开弹出窗口)