I want to know how can you perform case-insensitive comparison for searching using pipes in angular2.
below is the approach I have used so far.
Its searching the components correctly but is case-sensitive.
How can I make it case-insensitive?
1.components.json
"components": [
{
"name":"HeadingComponent",
"desc":"",
"cmpType":"Standard",
"imgUrl":"http://localhost:3202/uploads/ABC_bank.png",
"cmpLocation":"",
"isDynamic":"true"
},
{
"name":"BodyComponent",
"desc":"",
"cmpType":"Standard",
"imgUrl":"http://localhost:3202/uploads/demoairline.png",
"cmpLocation":"",
"isDynamic":"true"
},
{
"name":"FooterComponent",
"desc":"",
"cmpType":"Standard",
"imgUrl":"http://localhost:3202/uploads/SCE_5.PNG",
"cmpLocation":"",
"isDynamic":"true"
}
after reading this JSON data I am performing a search operation using pipe using below code.
2.components.html
<input class="form-control input-sm" [(ngModel)]="searchComp" type="text" placeholder="Search Components..." />
<li *ngFor="#comp of record.components | search:searchComp " style="display:block;padding:0px;cursor:move;position:relative;margin-top:5px;margin-bottom:5px"
title="{{comp.name}}">
<p class="text-center h6" style="font-size:8px;color:blue;font-weight:bold;">
{{comp.name }}
</p>
<img class="img-thumbnail1" src="{{comp.imgUrl}}" style="max-width:100%;" (click)="clicked(comp.name)">
</li>
3.search.pipe.ts
import {Pipe, PipeTransform,Injectable} from 'angular2/core';
@Pipe({
name: 'search',
pure: false
})
@Injectable()
export class SearchPipe implements PipeTransform {
transform(components: any[], args: any): any {
// filter components array, components which match and return true will be kept, false will be filtered out
return components.filter((component)=>component.name.indexOf(args)!== -1);
//return components;
}
}
So far its working correctly but it is case-sensitive ,How can I make this case-insensitive? I tried angularjs 1 logic as
*ngFor="#comp of record.components | search:searchComp :false"
but it didnt work. any suggestions? thanks in advance.