Estoy usando Autocompletar en Angular
<input type="text" matInput [ngModel]="chatList" [matAutocomplete]="autocopmlete" (focus)="filter('')" (ngModelChange)="filter($event)"> <mat-autocomplete #autocopmlete="matAutocomplete" [displayWith]="displayName"> <mat-option *ngFor="let item of filteredObject" [value]="item" (onSelectionChange)="selectUser(item)"> {{ item.Name }} </mat-option> </mat-autocomplete> tengo esta función de filtro en mi .ts file
filter(value = '') { if (typeof value !== 'string' || typeof value === 'undefined') { return; } this.filteredObject = this.chatList.filter( a => ~a.Name.toLocaleLowerCase().indexOf(value.toLocaleLowerCase()) ); }el filtro funciona, pero cuando cargo mi página y me enfoco en el campo de texto de búsqueda, aparece este error:
ERROR TypeError: no se pueden leer las propiedades de undefined (leyendo 'filtro')
Creo que el problema en chatList, puede agregar una condición para resolver eso:
filter(value = '') { if (typeof value !== 'string' || typeof value === 'undefined') { return; } this.filteredObject = (this.chatList || []).filter( a => ~a.Name.toLocaleLowerCase().indexOf(value.toLocaleLowerCase()) ); }