在没有过滤器管道的情况下,单击“搜索”按钮,即可在Angular 4中过滤表数据

时间:2018-12-03 10:46:38

标签: angular filter

我不熟悉4号角,出于学习目的,我正在做一项运动。我有一张表,其中的数据包含两个字段(电子邮件,ID)。 我要实现的目标是,如果用户输入ID号或电子邮件并单击“搜索”按钮,则表数据应更新为已过滤/搜索的数据,而旧表数据应消失。

示例:如果用户输入id(500601)并单击“搜索”按钮,那么我应该按照下面的屏幕截图获得表格:

Expected result

请检查所附的屏幕截图。 我创建了一个组件,即应用搜索:

//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']);
      }           
    });
  }
}

我尝试过的事情:

  1. 获取用户输入值
  2. 如果在用户数组中匹配,则更新用户数组

    // search.component.html

                  客户ID                          客户电邮                         搜索                                      ID         电子邮件                                 {{客户ID}}         {{customer.email}}                 

我正在尝试在没有角度4过滤管的情况下进行此练习。我尝试了多种解决方案,但到目前为止没有结果。我也尝试了以下参考文献:

Angular 4 Filteration on Button Click

Angular filter table using custom pipe upon button click

请分享您的建议或意见。

0 个答案:

没有答案