【发布时间】:2021-02-05 01:48:33
【问题描述】:
我有一个下拉菜单,可以在其中获取一些 json 数据。我这样做是有角度的。所以这里我有一个名为 options 的列表,里面的数据是 json 格式。所以我必须在下拉列表中显示名称字段所以我的任务是对此下拉列表进行自动完成搜索。我已在此处附上我的stackblitz 链接。
【问题讨论】:
标签: html angular typescript autocomplete angular-material
我有一个下拉菜单,可以在其中获取一些 json 数据。我这样做是有角度的。所以这里我有一个名为 options 的列表,里面的数据是 json 格式。所以我必须在下拉列表中显示名称字段所以我的任务是对此下拉列表进行自动完成搜索。我已在此处附上我的stackblitz 链接。
【问题讨论】:
标签: html angular typescript autocomplete angular-material
解决了你的问题。
return this.options.filter(option => option.name.toLowerCase().indexOf(filterValue) === 0);
【讨论】:
您需要将过滤方法修复为:
private _filter(value: any): any {
const filterValue = value.toLowerCase();
return this.options.filter(option =>
option.name.toLowerCase().includes(filterValue)
);
}
这里是demo code
【讨论】:
ngOnInit map(value => this._filter(value)) 。帮我解决 stackblitz 上的这个错误。我没看到。
您正在将一个对象与过滤器值进行比较。
你的过滤器回调函数应该是这样的。
option => option.name.toLowerCase().includes(filterValue)
【讨论】: