Автозаполнение Mat не закрывается, когда mat stepper изменяет programmatic

#angular #angular-material #mat-autocomplete

#angular #angular-материал #mat-автозаполнение

Вопрос:

У меня есть автозаполнение mat, которое запускает функцию на optionSelected()

 <mat-form-field fxLayout="column">
    <input  matInput
            [matAutocomplete]="auto"
            #trigger="matAutocompleteTrigger"
            formControlName="shop">
    <mat-autocomplete   #auto="matAutocomplete"
                        [displayWith]="displayFn" 
                        (optionSelected)="selectedShop($event, stepper)">
                        <mat-option>...</mat-option>
                        </mat-autocomplete>
</mat-form-field>
  

Приведенная выше форма находится внутри mat-stepper компонента. У optionSelected меня есть следующая функция

 selectedShop(event, stepper) {

    const shopData = event.option.value as Shop;

    if(shopData) {
      this.registerForm.patchValue({ secondaryMobile: shopData.secondaryMobile });
      stepper.next();
    }
}
  

когда кто-то выбирает автозаполнение, он устанавливает значение реактивной формы и переходит к следующему шаговому. и это работает нормально, но выпадающая панель автозаполнения по-прежнему остается сверху.

я устал

 @ViewChild(MatAutocompleteTrigger) autocompleteTrigger: MatAutocompleteTrigger;

if(shopData) {
      this.registerForm.patchValue({ secondaryMobile: shopData.secondaryMobile });
      stepper.next();
      this.autocompleteTrigger.closePanel();
}
  

также пробовал внутри ngAfterViewInit() , но не удалось. Панель никогда не закрывается. я использую angular версии 10.

Пожалуйста, помогите.

Комментарии:

1. Я попытался создать форму и исправить значение для элемента управления формой и попытался закодировать панель, и это сработало, так что, возможно, если вы можете поделиться стеком, это было бы полезно.

2. Я попытался создать форму и исправить значение для элемента управления формой и попытался закрыть панель с помощью closePanel() , и это сработало, так что, возможно, если вы можете поделиться стеком, это было бы полезно.