【问题标题】:ion-select ngModel not being update with ionic 4离子选择 ngModel 未使用 ionic 4 更新
【发布时间】:2023-03-05 10:06:01
【问题描述】:

我的应用部署了 Ionic 3,现在我正在迁移到 Ionic 4。

Ionic 4 的一个问题是使用 ngModel 和 ngModelChange 进行离子选择, 似乎当我选择一个选项时,ngModel 没有更新,因此 ngModelChange 没有被调度。

我的代码:

<ion-item>
    <ion-label floating>{{ 'Model' | translate }}</ion-label>
    <ion-select name="model" [(ngModel)]="device.model" (ngModelChange)="updateFirmwareList()" [disabled]="!isNew"
              required #model="ngModel" [cancelText]="ionSelecNameCancel" [okText]="ionSelecNameOk" ngDefaultControl>
              <ion-select-option *ngFor="let model of modelList" [value]="model">{{ model }}</ion-select-option>
    </ion-select>
</ion-item>
  • 我已经加载了 FormsModule 模块。

  • 没有显示错误。

  • 我从 ModalController 调用组件。

【问题讨论】:

    标签: angular ionic4


    【解决方案1】:

    如果您同时签入了 ionic 3 和 4 ngModelChange 事件,则在您单击模态的 Ok 按钮后会被调用。

    我在 StackBlitz 上使用您的代码创建了一个示例演示,其中包含您的以下代码。当我点击确定按钮时,我收到了一个事件。

    <ion-item>
        <ion-label floating>{{ 'Model' }}</ion-label>
        <ion-select name="model" [(ngModel)]="device.model" (ngModelChange)="updateFirmwareList()" [disabled]="!isNew" required #model="ngModel"
         [cancelText]="ionSelecNameCancel" [okText]="ionSelecNameOk" ngDefaultControl>
            <ion-select-option *ngFor="let model of modelList" [value]="model">{{ model }}</ion-select-option>
        </ion-select>
    </ion-item>
    

    TS

     updateFirmwareList() {
        console.log('Event Called');
      } 
    

    Ionic 3 Demo on stackblitz

    Ionic 4 Demo on stackblitz

    【讨论】:

    • 可能导致此问题的一点是我在 ModalController 中打开此窗口。 const modal = await this.modalCtrl.create({ component: FormDevice, componentProps: {}, cssClass: 'full-size' });等待 modal.present();
    • 它没有解决我的问题,因为我需要它像使用 Ionic 3 一样从 ModalController 工作。
    猜你喜欢
    • 2017-02-12
    • 2020-06-13
    • 2019-10-29
    • 2020-01-11
    • 1970-01-01
    • 2015-04-14
    • 2020-04-01
    • 2019-06-13
    • 2020-02-21
    相关资源
    最近更新 更多