ค้นหาเว็บไซต์

angularjs - วิธีใช้ตัวกรองการค้นหาบนรายการใน angular2?


ฉันต้องการที่จะใช้งานตัวกรองการค้นหาบนรายการข้อมูลที่เก็บอยู่ในอาเรย์ และฉันต้องการที่จะใช้ตัวกรองการค้นหาเหมือนกับการค้นหาในตารางข้อมูล ตามที่แสดงในภาพด้านล่าง แต่ในฟิลด์เหล่านั้น (ชื่อ, ที่อยู่ ฯลฯ) ไม่ได้มีการกำหนดแน่นอน

ฉันจะทำให้สิ่งนี้สำเร็จได้อย่างไร?

คำตอบ #1

สาธิต

ถ้าคุณต้องการกรองตามฟิลด์อื่น ๆ เพียงเพิ่มพวกมันในท่อ:

import { Pipe,PipeTransform} from '@angular/core';

@Pipe({
    name: 'searchFilter'
})
export class SearchFilter implements PipeTransform {
    transform(items: any[], criteria: any): any {

        return items.filter(item =>{
           for (let key in item ) {
             if((""+item[key]).toLocaleLowerCase().includes(criteria.toLocaleLowerCase())){
                return true;
             }
           }
           return false;
        });
    }
}

    @Component({
      selector: 'sites-component',
      template: `
        <input #search  (keyup)="0">
        <ul>
          <li *ngFor="let site of (sites | searchFilter: search.value )">(...)</li>
        </ul>
      `
    })
    export class SitesComponent{
       sites : Array;
    }

อย่าลืมประกาศ pipe ในโมดูลของคุณ

บทความที่เกี่ยวข้อง