当前位置: 首页 > 知识库问答 >
问题:

离子警报控制器阻止页面刷新

汪臻
2023-03-14

我是Ionic-Angular的新手。问题是我有一个matauto补全和图标。当您在matauto补全中选择一个值时,下面会显示一个列表。单击图标时,我将显示ionic alertControl,选择确定时,以编程方式设置matauto补全的值。虽然值在matauto补全中设置,但列表并不刷新。然后当我再次单击图标或更改窗口时,列表会刷新。

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个答案

裘嘉木
2023-03-14

异步操作可能不会触发Angular重新渲染视图,您可以尝试手动通知Angular重新渲染

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

constructor(public _ngZone:NgZone){}

public refresh() {
  this._ngZone.run(() => {});
}
 类似资料:
  • 我正在为一个应用程序工作,该应用程序使用警报告诉用户它正在使用nfc。我正在对这个应用程序进行单元测试,并在alertcontroller上设置了一个间谍。创建方法如下: 在单元测试中,我想检查是否使用正确的警报选项调用它,如下所示: 然而,问题是由于处理程序的原因,它在运行测试时给出了错误。我如何有效地测试alertcontroller.create函数是否使用正确的值调用?就像现在一样,测试给

  • 如果用户试图在文本框中粘贴字符串,我想清空警报输入。这是我的代码: 到目前为止,我正在检测粘贴事件,但清空文本框的代码不起作用。我还尝试使用: document.getElementById('txtSerial'). value = ''; document.getElementById('txtSerial')["值"] = ''; event.src元素["值"] = '"; 但是这些似乎都

  • 成功登录验证后,我需要刷新主页。在这里,我使用下面的代码在成功登录后移动到下一页,并使用Firebase作为后端。 它只是打开主页而没有刷新。欢迎,如果有人能给我一个解决方案。

  • 我有一个ionic应用程序,我使用ionic存储。我有两页,第一页和第二页。在第2页。我向存储器中添加了一些信息,然后调用导航控制器。pop()返回第1页。在第1页中,我想显示添加到存储器中的新信息。 代码如下:第2页。TS 听着,我创建了一个对象并存储它和对page1的调用。 超文本标记语言: 第1.TS页 好吧,这段代码做了我想要的,如果我存储一个新的活动并刷新Page1,我可以显示它。但是,

  • 你好,我有一个应用程序有警报,在用户没有响应后,我想刷新警报/再次显示它,但由于某些原因,我没有看到第二个警报,它是空的,像: 我关闭警报,如果它显示,所以我不知道为什么下一个警报是空的。包装应用;

  • 问题内容: 我是angularjs新蜜蜂。我正在尝试编写一个验证,当用户尝试关闭浏览器窗口时会发出警告。 我的页面v1和v2上有2个链接。单击链接时,它指向特定页面。这是重定向到v1和v2的代码 当用户单击v1时,我想弹出一条消息,“如果他希望继续,他将从v1离开”,而单击v2时也是如此。任何有关如何实现这一目标的指针将不胜感激。 我在这里得到了答案,但是在每个时间间隔后都会弹出该消息。 更新的代