I want to create a custom search filter in Angular 4. Names should contain search text and the corresponding name and image should be displayed. I have tried in the code below, but it doesn't work. I can't find the reason.
JSON data:
[
{
"name":"The Birds",
"poster-image":"poster5.jpg"
},
{
"name":"Rear Window",
"poster-image":"poster8.jpg"
},
{
"name":"Family Pot",
"poster-image":"poster5.jpg"
},
{
"name":"Family Pot",
"poster-image":"poster9.jpg"
}
]
HTML code:
<div id="ProductContainer">
<input [(ngModel)]="searchText" placeholder="search text goes here">
<div id="Product" *ngFor = "let data of httpdatanew">
<img src="\assets\images\{{data.posterimage}}">
<br/>
<p id="Prodname">{{data.name | prodfilter : searchText}}</p>
</div>
</div>
Filter.TS:
import { Pipe,PipeTransform} from '@angular/core';
@Pipe ({
name : 'prodfilter'
})
export class FilterPipe implements PipeTransform {
transform(value: any, input: string) {
if (input) {
input = input.toLowerCase();
return value.filter(function (el: any) {
return el.toLowerCase().includes(input);
})
}
return value;
}
}