javascript - 搜索字段的角管
问题描述
我有一个过滤搜索字段的管道,并根据搜索文本显示项目列表。目前,它仅过滤 companyDisplay。目标是过滤 companyCode 和 companyDisplay
JSON
[{
companyDisplay: "ABC",
companyName: "EFG",
companyCode: "1234"
}]
搜索管道
import { Pipe, PipeTransform } from '@angular/core'; // serach text sorting
@Pipe({
name: 'searchCompanyPipe'
})
export class SearchPipe implements PipeTransform {
transform(items: any[], searchText: any): any[] {
if (!items) { return []; }
if (!searchText) { return items; }
searchText = searchText.toLowerCase();
return items.filter(i => {
return (i.companyDisplay || i.companyCode).toLowerCase().includes(searchText);
});
}
}
HTML
<li *ngFor="let data of companyInfo| searchPipe:searchValue">
companyInfo
持有json。
解决方案
这里的问题是以下代码:
(i.companyDisplay || i.companyCode)
companyDisplay
只要它不是虚假值,就总是返回。你需要使用类似的东西:
return i.companyDisplay.toLowerCase().includes(searchText) || i.companyCode.toLowerCase().includes(searchText);
推荐阅读
- docker - 如何在 docker daemon 中禁止 docker run 命令以及如何限制单个用户对 docker daemon 的访问
- excel - 使用 Office.js 从 Excel 加载项创建 Word 文档
- java - 以普什图语生成碧玉报告的问题(报告不打印普什图文本)
- python - 顺序搜索python仅输出1个名称
- unity3d - VideoPlayer 统一剪切
- c++ - 将光标坐标发送到 C++ 并将它们存储在结构中并附加到 main.qml
- java - DeleteById 在 Spring Boot JPA 存储库中不起作用
- php - Laravel Forbidden 您无权访问此服务器上的 /storage/
- amazon-web-services - 从 S3 下载后移动文件
- node.js - 试图在公司系统上使用“npm install”。得到以下错误