【发布时间】:2022-01-22 07:33:19
【问题描述】:
我想默认显示我页面上的所有数据。但是如果用户在搜索字段中添加了一些关键字,那么我想通过他们的 uiUnits ID 过滤显示的数据。
数据结构,仪表板:
[
{
"id": "interface A",
"uiUnits": [
{
"type": "widget",
"id": "abc"
},
{
"type": "widget",
"id": "xyz"
}
]
},
{
"id": "interface B",
"uiUnits": [
{
"type": "widget",
"id": "zzz"
}
]
}
]
component.html
<input type="search" [(ngModel)]="searchTerm">
<button (click)="filterUnits(searchTerm)"></button>
<div *ngFor="item of dashboard">
<div *ngFor="unit of item.uiUnits">
<p>{{ unit.id }}</p>
<p>{{ unit.type }}</p>
</div>
</div>
组件.ts
dashboard: Dashboard;
filterUnits(data: string) {
this.dashboard.filter((x) =>
x.uiUnits.id.toLowerCase().indexOf(data.toLowerCase()) > -1);
return this.dashboard;
}
filterUnits 功能不起作用,有人可以帮我解决一下吗?
【问题讨论】:
-
uiUnits是一个array,因此您无法访问属性id,您需要遍历其元素。
标签: angular typescript angular9