обновление страницы блокировки ионного оповещения - PullRequest
0 голосов
/ 30 ноября 2018

Я новичок в Ionic-Angular.Дело в том, что у меня есть matautocomplete вместе с иконой.Когда вы выбираете значение в matautocomplete, список показывается ниже.При нажатии на значок я показываю ionic alertcontroller и, выбрав ok, устанавливаю значение matautocomplete программно.Хотя значение устанавливается в matautocomplete, но список не обновляется.Затем, когда я снова нажимаю на иконку или даже меняю окно, список обновляется.

async showBranches() {
    // this.autocomplete.closePanel();
    const alert = await this.alertController.create({
      header: 'Branch Locations',
      inputs: this.branchArray,
      buttons: [
        {
          text: "CANCEL",
          handler: data => {
            console.log("cancel clicked");
          }
        },
        {
          text: "OK",
          handler: data => {
            console.log("branchId: " + data);
            this.branchID = data;
            this.setBlankOrSelectedBranch();
            
          }
        }],
      cssClass: 'alertCustomCss'
    });
    await alert.present();
  }
<div class="col90">
              <mat-form-field class="fullWidth">
                <input type="text" placeholder="Select Branch Location" matInput [formControl]="myBranch"
                  [matAutocomplete]="auto">
                <mat-autocomplete #auto="matAutocomplete" [displayWith]="displayFn" (optionSelected)='onBranchSelected($event.option.value)'>
                  <mat-option *ngFor="let branch of filteredBranches | async" [value]="branch">
                    {{branch.branchName}}
                  </mat-option>
                </mat-autocomplete>
              </mat-form-field>
              <ion-icon name="finger-print" matSuffix class="thumb" (click)="showBranches()"></ion-icon>
            </div>

1 Ответ

0 голосов
/ 30 ноября 2018

Асинхронные операции могут не запускать Angular для повторного рендеринга вида, вы можете попробовать вручную уведомить Angular для повторного рендеринга

import { NgZone } from '@angular/core';

constructor(public _ngZone:NgZone){}

public refresh() {
  this._ngZone.run(() => {});
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...