Angular 带角度材质表的多文本搜索
搜索目前运行良好。但我对搜索有特殊要求 假设我需要搜索第一行Angular 带角度材质表的多文本搜索,angular,html-table,angular-material,Angular,Html Table,Angular Material,搜索目前运行良好。但我对搜索有特殊要求 假设我需要搜索第一行氢锂,用户应该能够输入以下内容: *Hy*Li我应该得到输出氢锂 我怎样才能做到这一点?我需要将*拆分成一个数组,并在拆分*后基于所有搜索项导出我的搜索。您需要修改数据源的属性 示例来自Stackblitz,并基于您的搜索要求 具体而言: constructor(private dialog: MatDialog) { this.dataSource.filterPredicate = (data: Eleme
氢锂
,用户应该能够输入以下内容:
*Hy*Li
我应该得到输出氢锂
我怎样才能做到这一点?我需要将
*
拆分成一个数组
,并在拆分*
后基于所有搜索项导出我的搜索。您需要修改数据源的属性
示例来自Stackblitz,并基于您的搜索要求
具体而言:
constructor(private dialog: MatDialog) {
this.dataSource.filterPredicate =
(data: Element, filter: string) => {
const searchArray = filter.split("*");
let filterMatch = true;
let prevIndex = 0;
searchArray.forEach(subString => {
const strIndex = data.name.toLowerCase().indexOf(subString.toLowerCase());
if (strIndex === -1 || strIndex < prevIndex) {
filterMatch = false;
} else {
prevIndex = strIndex;
}
});
return filterMatch;
};
}
构造函数(专用对话框:MatDialog){
this.dataSource.filterPredicate=
(数据:元素,筛选器:字符串)=>{
const searchArray=filter.split(“*”);
让filterMatch=true;
设prevIndex=0;
searchArray.forEach(子字符串=>{
const strIndex=data.name.toLowerCase().indexOf(subString.toLowerCase());
如果(strIndex==-1 | | strIndex
(抱歉,这太冗长了-我会在有时间的时候再看!)