javascript - 如何根据用户输入过滤 Angular 视图中的数据?
问题描述
我想根据用户搜索参数在Angular 7/8中显示数据。最初视图应该是空白的,但是当用户输入搜索参数并单击提交按钮时,应该使用新的/过滤的信息更新视图。
所需的方法:空ArrayB应填充 ArrayA 的过滤数据
执行:
ArrayA = [{id:1, Name:"Steve"},{id:2, Name:"Maureen"},{id:3, Name:"Damian"},{id:4, Name:"Dee"}];
ArrayB = [];
HTML 代码:
<div class="container">
<div class="row">
<form class="form" [formGroup]="filterForm" >
<label for="">ID</label>
<input type="text" name="person_id" formControlName="person_id" id="person_id">
<button type="submit" (click)="submit($event)">Submit</button>
</form>
</div>
<div class="row">
<div class="col-12" ngFor="let filteredArr of ArrayB">{{filteredArr.name}}</div>
</div>
</div>
当我单击提交时,应根据用户提供的 ID 过滤 ArrayA 并将其推送到ArrayB并使用新信息更新视图。
submit(event){
//Filter ArrayA and push to ArrayB
}
如果有更好、更简单的方法来实现同样的目标,我将不胜感激
解决方案
您可以使用.filter()
方法:
let filteredUserID = this.form.get('person_id').value
this.ArrayB = this.ArrayA.filter(item => item.id == filteredUserID))
推荐阅读
- haskell - ghc 无法编译任何东西并给出看似无关的错误消息
- php - 使用PHP增加变量后如何通过if语句重申?
- javascript - 循环遍历 JSON 数据以将嵌套数据添加到数组(要添加到 MySQL 数据库表)在缺少值时失败
- java - 无法使用 drools 工作台仪表板构建和部署 jar 文件以将其部署到 kieserver。构建 jar spinner 的过程卡住了
- python - Visual Studio Code 不会打开 .py、.ipynb 文件
- wpf - WPF 应用程序未调用 Prism INavigationAware 方法
- android - xamarin form android自定义渲染器:覆盖两个页面
- c# - Github 中的持续部署操作 asp.net 核心解决方案
- python - Pandas:检查数据框是否存在
- javascript - 即使满足条件,这也不会返回“if”语句