Я сделал список и панель поиска с реализованной функцией фильтра.
Вот моя панель поиска с моей функцией фильтра.
<div>
<mat-form-field class="example-full-width">
<input matInput #message maxlength="256"
placeholder="Type vehicle name" (input)='filter(message.value)' >
<mat-hint align="start"><strong>Find vehicle</strong> </mat-hint>
<mat-hint align="end">{{message.value.length}} / 256</mat-hint>
</mat-form-field>
</div>
Вот мой список
<div>
<mat-nav-list>
<mat-list-item *ngFor="let stuff of vehicleDetails">
<a matLine> {{ stuff.name }} </a>
<button mat-icon-button id="btn" (mouseover)="showInfo(stuff)">
<mat-icon>info</mat-icon>
</button>
</mat-list-item>
</mat-nav-list>
</div>
Эти два файла находятся в одном и том же файле .html и совместно используют файл component.ts. Список генерируется путем вызова getVehicleDetails () в моем ngOnInit.
export class VehiclelistComponent implements OnInit {
vehicleDetails: VehicleDetail[] = [];
constructor(private vehicleService: VehicleService) { }
ngOnInit() {
this.getVehicleDetails();
}
getVehicleDetails(): void {
this.vehicleService.getVehicleDetails()
.subscribe(vehicleDetails => {
this.vehicleDetails = vehicleDetails;
});
}
И это функция, которую я использую для фильтрации:
filter(searchToken: string) {
if (searchToken == null) {
searchToken = '';
}
searchToken = searchToken.toLowerCase();
return this.vehicleDetails.filter((elem: VehicleDetail) =>
elem.name.toLowerCase().indexOf(searchToken) > -1);
}
Почему это не работает? Функция фильтра не оказывает никакого влияния на мой список. Кто-нибудь знает, как мне это решить?