Проблема Angler 2 Custom pipe filer

Я хочу фильтровать данные по мужчинам и женщинам с помощью пользовательского канала в компоненте employeemale.ts, когда я использую женский код в пользовательском канале в ngfor цикл показывает данные в соответствии с женщиной:

Работает:

<ng-container *ngFor="let empLists of empList | filterdata:'female'">

но когда я использую мужчин, он показывает все данные JSON

Не работает:

<ng-container *ngFor="let empLists of empList | filterdata:'male'">

Это мой компонент HTML

<div class="widget box">
    <div class="widget-header"> <h4><i class="fa fa-bars"></i> Female Employe Details</h4></div>
</div>

Когда я фильтрую данные по женщине, это:

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

@Pipe({
  name: 'filterdata'
})
export class FilterdataPipe implements PipeTransform {

  transform(empList: Array<any>, arg: string): any {
    debugger
    return empList.filter(function(empLists){
      //console.log(empLists)
           return empLists.gender.toLowerCase().includes(arg.toLowerCase());
    })
  }

}
<div class="widget-content">
<table class="table table-bordered">
   <thead>
    <tr>
      <th>#employee ID</th>
      <th>Name</th>
       <th>Gender</th>
    </tr>
  </thead>

       <ng-container *ngFor="let empLists of empList | filterdata:'male'">
 <tr>
      <th>{{empLists.id}}</th>
       <th>{{empLists.fullName}}</th>
       <th>{{empLists.gender}}</th>

    </tr>
  </ng-container>
  </tbody>
</table>

Это мой пользовательский канал filterdata.pipe.ts

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

@Pipe({
  name: 'filterdata'
})
export class FilterdataPipe implements PipeTransform {

  transform(empList: Array<any>, arg: string): any {
    debugger
    return empList.filter(function(empLists){
      //console.log(empLists)
           return empLists.gender.toLowerCase().includes(arg.toLowerCase());
    })
  }
}

1 ответ

Решение

Просто используйте равенство вместо include:

transform(empList: Array<any>, arg: string): any {
return empList.filter(function(emp){
  //console.log(empLists)
       return emp.gender.toLowerCase() === arg.toLowerCase();
});

Использование include не удастся, потому что в вашей женщине есть "мужской"

Другие вопросы по тегам