2016-10-05 1 views
-2
import {Pipe, PipeTransform} from '@angular/core'; 

// # Filter Array of Objects 
@Pipe ({ name: 'filter' }) 
export class FilterArrayPipe implements PipeTransform { 
    transform(value:any, filter: string, item: any) { 
    // filter = filter ? filter.toLocaleLowerCase() : null; 
    if (!filter) { 
     return value; 
    } else if (value) { 
     return value.filter(item=> { 
     for (let key in item) { 
      if ((typeof item[key] === 'string' || item[key] instanceof String) && 
      (item[key].indexOf(filter) !== -1)) { 
      return true; 
      } 
     } 
     }); 
    } 
    } 
} 
+1

Что вопрос? –

+0

Как я могу сделать этот регистр нечувствительным? этот фильтр работает только с учетом регистра – mike

ответ

2

Преобразовать их нижним регистр перед сравнением:

(item[key].toLowerCase().indexOf(filter.toLowerCase()) !== -1)) { 
+1

Он работает, отлично. – mike

-2
<div class='card-block'> 
    <ul> 
     <li *ngFor="let role of roles" [class.mysearch]="!(role.roleName.toLowerCase().indexOf(searchRole.toLowerCase())!== -1)" pDraggable='aroles' (onDragStart)='dragStart($event,role)' 
      (onDragEnd)='dragEnd($event)' [@flyInOut]="'in'"> 
      <span class='col-md'>{{role.careerGroupId.technology}} - {{role.roleName}} ({{role.careerGroupId.domain}}) </span>       
      <span class="btn-success flex-xs-right" (click)="insertSelectedRole(role)"> 
       <i class="fa fa-lg fa-angle-double-right"></i> 
      </span> 
      </li> 
    </ul> 
    <div class=”row”> 
     <div class="Filder">Filter by:<input [(ngModel)]="searchRole" type="text" class="Searchtextbox" placeholder="Search here" 
      /></div> 
    </div> 
</div> 

 Смежные вопросы

  • Нет связанных вопросов^_^