Я получаю следующую ошибку при очистке поискового значения из поля mat-autocomplete с помощью Angular8.
Ошибка:
ERROR RangeError: Maximum call stack size exceeded
at SafeSubscriber.push../node_modules/rxjs/_esm5/internal/Subscriber.js.SafeSubscriber.__tryOrUnsub
Я объясняю свой код ниже.
<div class="col-md-6">
<div class="input-group bmargindiv1 col-md-12">
<mat-form-field style="margin-top: -5px;" appearance="outline">
<input matInput placeholder="Search Groups ..." aria-label="Search Groups ..." [matAutocomplete]="Store" [formControl]="storeCtl">
<button mat-icon-button matSuffix>
<mat-icon>search</mat-icon>
</button>
<mat-autocomplete #Store="matAutocomplete" (optionSelected)="onGroupSelectionChanged($event)">
<mat-option *ngFor="let store of stores" [value]="store">
<span>{{store.GroupName}}</span>
</mat-option>
</mat-autocomplete>
</mat-form-field>
</div>
</div>
storeCtl = new FormControl();
_item: any = {};
stores: any [];
this.storeCtl.valueChanges.subscribe((value: string) => {
if(isEmpty(value)) {
this._item.Store = {};
this.storeCtl.setValue('');
this.stores=[];
return;
}
this.api.getCustomerGroupListByKeyword(value).subscribe(res => {
//console.log('search data', res);
this.stores = res['data'] || [];
});
});
Здесь моя проблема, скажем, я искал одно значение abcds
, и в то же время я очищаю это значение из поля поиска для другого поиска в то время, когда появляются эти ошибки. Мне нужно после очистки значения поиска, я должен сделать следующий поиск. Любая помощь в основном заметна.