Я реализовал список массивов.Он заселен с пожарной базы.Я хочу просмотреть этот список.Когда страница загружается впервые, она не отображает ни одного элемента в списке.Но если я что-то наберу в поисковой строке, то это покажет элементы списка.Я попробовал ngZone, но это не сработало, здесь я дам вам полный исходный код.
ПРИМЕЧАНИЕ: после ввода чего-либо при поиске всегда отображаются элементы, но изначально пустые
![Here is the problem exactly what i have](https://i.stack.imgur.com/y5Q9k.gif)
HTML
<ion-content padding>
<ion-searchbar [(ngModel)]="searchTerm" [formControl]="searchControl" (ionInput)="onSearchInput()"></ion-searchbar>
<div *ngIf="searching" class="spinner-container">
<ion-spinner></ion-spinner>
</div>
<ion-list>
<ion-item *ngFor="let item of items">
{{item.client_meeting_schedule_client_name}}
</ion-item>
</ion-list>
</ion-content>
DONE_TASK.ts
export class DoneTasksPage {
searchTerm: string = '';
searchControl: FormControl;
items: any;
searching: any = false;
constructor(public navCtrl: NavController, public oDataListProvider: DataListProvider, private oNgZone: NgZone) {
this.searchControl = new FormControl();
}
ionViewDidLoad() {
this.setFilteredItems();
this.searchControl.valueChanges.debounceTime(700).subscribe(search => {
this.searching = false;
this.setFilteredItems();
});
}
onSearchInput() {
this.searching = true;
}
setFilteredItems() {
this.oNgZone.run(() => {
this.items = this.oDataListProvider.filterItems(this.searchTerm);
})
}
}
DATA_LIST_PROVIDER
export class DataListProvider {
items = [];
public ClientSchedules: Array<any> = [];
clientSchedulesRef: any;
whereClause: string;
constructor(private oAngularFireDatabase: AngularFireDatabase, private oNgZone: NgZone) {
this.whereClause = "true_false_true_false";
//Client schedule node refference
this.clientSchedulesRef = this.oAngularFireDatabase.database.ref('/Client_meeting_schedule').orderByChild("client_meeting_schedule_valid_status").equalTo(this.whereClause);
//Above sequence of equal IsActive true / IsDelete false / IsDone true / IsNotDone false
this.clientSchedulesRef.on('value', client_Schedules_Snapshot => {
this.oNgZone.run(() => {
// Here we'll work with the list
client_Schedules_Snapshot.forEach(clientsSheduleSnap => {
this.items.push(clientsSheduleSnap.val());
});
});
});
}
filterItems(searchTerm) {
return this.items.filter((item) => {
return item.client_meeting_schedule_client_name.toLowerCase().indexOf(searchTerm.toLowerCase()) > -1;
});
}
}