Я пытаюсь применить этот простой фильтр, примененный к запросу списка, который с каждым вводом списка сужает возможности
HTML:
<mat-form-field>
<mat-label>Search for users</mat-label>
<input #query type="text" matInput placeholder="search" (keyup)="filter(query.value)">
</mat-form-field>
<div *ngIf="filteredUsers">
И функция:
filter(query){
this.filteredUsers= query?
this.users.filter(user=>user.username.includes(query)):
this.users;
}
<ul *ngFor="let u of filteredUsers">
<li>
{{u.username}}
</li>
</ul>
</div>
Ошибка, которую я получаю при вводе идентификатора символа, который не определен фильтром, но, поскольку оба массива fileterdUsers и Users заполнены, я не могу понять, почему возникает эта ошибка ... Любые идеи ?
РЕДАКТИРОВАТЬ: ngOninit:
ngOnInit(): void {
this.dataService.getUsers()
.pipe(first())
.subscribe(users=>{
this.filteredUsers=this.users=users;
console.log(users, this.filteredUsers) -> i get the data
})
}
Редактировать 2:
РЕДАКТИРОВАТЬ
filter(query){
console.log(this.users)
this.filteredUsers= query?
this.users.filter(user=>user.username.includes(query)):
this.users;
console.log(this.users)
}
Вот так, я не вижу никаких журналов ...
РЕДАКТИРОВАТЬ 3: снимок
Хорошо, может быть, я имею представление о том, что происходит. Первые элементы моего ngFor пусты, как вы можете видеть на картинке. Это причина жалобы Angular? (ваше последнее исправление тоже не помогло)