2017-05-03 3 views
0

Mon filtre de texte actuel filtre avec succès un tableau et affiche uniquement la correspondance de casse exacte. Je veux être en mesure de rechercher sans correspondre à l'affaire sans affecter les résultats de la recherche dans leurs cas respectifs.Comment rendre le filtre de texte insensible à la casse?

users = [ 
    {fname: 'John', lname: 'doe'}, 
    {fname: 'Jane', lname: 'Doe'} 
]; 

<h3>USERS</h3> 
<input type="text" Name="userSearch" [(ngModel)]="userSearch"> 

<ul *ngFor="let user of users"> 
    <li>{{ user.fname }} {{ user.lname }}</li> 
</ul> 

Recherche Texte: doe
Résultat de la recherche: John doe
Résultats attendus: John doe, Jane Doe

filtre texte actuel Tuyau:

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

@Pipe({ name: 'textFilter' }) 
export class TextFilter implements PipeTransform 
{ 
    transform(value: any, term: any) { 
    if (!term) { return value; } 
    return value.filter((item: any) => { 
     for (let prop in item) { 
     if (typeof item[prop] === 'string' && item[prop].indexOf(term) > -1) { 
      return true; 
     } 
     } 
     return false; 
    }); 
    } 
} 

Répondre

1

essayer cette

@Pipe({ name: 'textFilter' }) 
export class TextFilter implements PipeTransform 
{ 
    transform(value: any, term: any) { 
    if (!term) { return value; } 
    return value.filter((item: any) => { 
     for (let prop in item) { 
     if (typeof item[prop] === 'string' && 
      item[prop].toLowerCase().indexOf(term.toLowerCase()) > -1) { 
      return true; 
     } 
     } 
     return false; 
    }); 
    } 
} 
+0

Cela fonctionne parfaitement, merci! – anonym