У меня есть директива автозаполнения Mat, используемая следующим образом для динамически генерируемой формы ввода:
<mat-list *ngFor="let key of keysList" style="padding-top:0px;">
<mat-list-item class="editor-list" *ngIf="ifKeyIgnored(key) == false" style="height: 36px;">
<div class="concept-list-block key-block">{{key}} </div>
<div class="concept-list-block value-block" style="width:600px !important;">
<mat-form-field style="width: 550px;">
<input (focusout)="filteredLookupList=[]" [matAutocomplete]="auto" matInput [(ngModel)]="dataObject[key]" (ngModelChange)="filteredLookupList = setupAutoCompleteData(key, 1)">
</mat-form-field>
</div>
</mat-list-item>
</mat-list>
<mat-autocomplete #auto="matAutocomplete">
<mat-option *ngFor="let val of filteredLookupList" [value]="val.code">
<span>{{val.code}}</span> |
<small>Narrative: {{val.narrative}}</small>
</mat-option>
</mat-autocomplete>
И мой TS для setupAutoCompleteData
равен
setupAutoCompleteData = function(key, num){
let searchValue = this.dataObj[key] != null ? ""+this.dataObject[key] : "";
let searchKey = "dataObj."+key
this.currentLookupKey = key;
this.currentLookup = JSON.parse(localStorage.getItem("lookups"))[searchKey]; //this returns an array from an object of lookup values
return this.currentLookup.filter(vals => {
return vals.code.toLowerCase().includes(searchValue.toLowerCase())
});
}
Это прекрасно работает, нопроблема заключается в том, что после редактирования одного ввода и перехода к другому в раскрывающемся списке автозаполнения по-прежнему отображаются значения из первого списка фильтров, пока я не начну печатать в новом поле ввода.Что я могу сделать, чтобы это исправить?