我不熟悉4号角,出于学习目的,我正在做一项运动。我有一张表,其中的数据包含两个字段(电子邮件,ID)。 我要实现的目标是,如果用户输入ID号或电子邮件并单击“搜索”按钮,则表数据应更新为已过滤/搜索的数据,而旧表数据应消失。
示例:如果用户输入id(500601)并单击“搜索”按钮,那么我应该按照下面的屏幕截图获得表格:
请检查所附的屏幕截图。 我创建了一个组件,即应用搜索:
//search.component.ts
import { Component, OnInit } from '@angular/core';
@Component({
selector: 'app-search',
templateUrl: './search.component.html',
styleUrls: ['./search.component.css']
})
export class SearchComponent implements OnInit {
email: any = '';
id: any = '';
users = [
{
id: '500601',
email: 'abc@example.com'
}, {
id: '500602',
email: 'xyz@example.com'
},
{
id: '500603',
email: 'jsgsbh@example.com'
}, {
id: '500604',
email: 'test1@example.com'
},
{
id: '500605',
email: 'test2@example.com'
},
{
id: '500606',
email: 'test3@example.com'
}
];
tempId: any = '';
tempEmail: any = '';
constructor() { }
ngOnInit() {
}
search() {
let me = this;
// take the user input value
let idFieldVaue: any = ((document.getElementById("id") as HTMLInputElement).value);
//console.log(idFieldVaue);
let emailFieldVaue: any = ((document.getElementById("email") as HTMLInputElement).value);
//console.log(emailFieldVaue);
// if match then push that value in users array
me.users.forEach(element => {
me.tempId = element.id;
me.tempEmail = element.email;
if((me.tempId === idFieldVaue) || (me.tempEmail === idFieldVaue)) {
me.users = [];
me.users.push(me.tempId);
me.users.push(me.tempEmail)
console.log(me.users['id']);
}
});
}
}
我尝试过的事情:
如果在用户数组中匹配,则更新用户数组
// search.component.html
客户ID 客户电邮 搜索 ID 电子邮件 {{客户ID}} {{customer.email}}
我正在尝试在没有角度4过滤管的情况下进行此练习。我尝试了多种解决方案,但到目前为止没有结果。我也尝试了以下参考文献:
Angular 4 Filteration on Button Click
Angular filter table using custom pipe upon button click
请分享您的建议或意见。