Reputation: 65
I having trouble on this small project. I want to make on my html two inputs and they have to filter some data from database. I manged to make one filter (it works) but I dont know how to make second filter. (Im sorry for not using english language in my files and I hope it doesnt bother you). Here is what i got :
html file
<div class="container">
<form class="navbar-form navbar-left" role="search">
<div class="form-group">
<input type="text" class="form-control" placeholder="Broj Kreveta" [(ngModel)]="broj_kreveta">
<input type="text" class="form-control" placeholder="Broj Kvadrata" [(ngModel)]="broj_kvadrata">
</div>
</form>
<div class="col-lg-12">
<br/>Rooms<br/> <br/>
<div *ngFor="#soba of sobe | SearchPipe:broj_kreveta">
ID room: {{soba.id}}
<br/>
Category: {{soba.kategorija}}
<br/>
Room number: {{soba.broj_sobe}}
<br/>
Number of beds: {{soba.broj_kreveta}}
<br/>
sqm: {{soba.broj_kvadrata}}
<br/><br/>
</div>
</div>
</div>
search.ts
import {Pipe} from 'angular2/core';
@Pipe({
name: 'SearchPipe'
})
export class SearchPipe {
transform (value, [queryString]) {
if (value == null) {
return null;
}
console.log('transform');
return value.filter(item=>item.broj_kreveta.toLowerCase().indexOf(queryString.toLowerCase()) !== -1);
}
}
Upvotes: 0
Views: 256
Reputation: 10603
You can have booth parameters in your pipe:
{{ myData | myPipe: arg1:arg2:arg3... }}
and the pipe definition:
export class MyPipe implements PipeTransform {
transform(value:any, arg1:any, arg2:any, arg3:any):any {
}
Upvotes: 1