在不使用 OK 按钮的情况下从 ion-select 选择选项时,如何使离子输入出现?

How can I make ionic input to appear when choosing options from the ion-select without using OK button?

我正在使用 ion-select 让用户选择 select 选项,在 ion-option 中包含一个选项列表,用户可以从中选择一个。如果用户选择 "Others" 选项,将自动出现输入,以便用户键入下拉列表中不可用的选项。

现在我需要使用没有 OK 和 CANCEL 按钮的 ion-select。因为我已经实现了,所以我需要显示离子输入字段,以便在用户选择 "Others" 选项时自动出现。如果我使用“确定”和“取消”按钮,此逻辑工作正常。

现在我需要在没有“确定”和“取消”按钮的情况下实现相同的逻辑。仅当用户选择 "Others" 选项并单击 "OK" 按钮时,离子输入才会出现。因为我不想在这里使用任何按钮,所以我希望 "Others" ion-input 字段在用户选择下拉列表中的 "Others" 选项时直接出现,而无需按 OK 按钮.

这是我迄今为止在 HTML 中尝试过的方法:

<ion-select class="mydate" formControlName="bankselect" [(ngModel)]="vm.bankselect" interface="popover" (ionChange) = "bankChange($event)"  class="textcolor" value="bank">
                  <ion-option *ngFor="let item of banklist; let i =index"  value="{{i}}">{{item.value}}</ion-option>
                </ion-select>

<ion-item no-lines *ngIf = "vm.bankselect == 6">
                    <ion-icon class="iconstyle" name="logo-bitcoin" item-start></ion-icon>
                    <ion-label floating color="primary">Others</ion-label>
                    <ion-input type="text" (ionChange)="notify($event)" class="textcolor" formControlName = "Others" [(ngModel)]="vm.Others" maxlength="50" tabindex="1" (keyup)="moveFocus($event,query, false)"></ion-input>  
               </ion-item>

我不确定,但也许你应该试试 (ionSelect)。

在你的 .html 文件中应该是这样的。

   <ion-select "some codes...">
  <ion-option *ngFor="...." "some codes..."   (ionSelect)="showInput(item.value)"></ion-option>
  </ion-select>

<ion-item no-lines *ngIf = "show">
                <ion-icon class="iconstyle" name="logo-bitcoin" item-start></ion-icon>
                <ion-label floating color="primary">Others</ion-label>
                <ion-input type="text" (ionChange)="notify($event)" class="textcolor" formControlName = "Others" [(ngModel)]="vm.Others" maxlength="50" tabindex="1" (keyup)="moveFocus($event,query, false)"></ion-input>  
           </ion-item>

和 .ts 文件

show: boolean = false;

showInput(item){
if(item == 'other'){
this.show = true;
}
else
this.show = false;
}

You can have one input inside ion-select like this and add required CSS based on your need.

 <ion-item> 
   <ion-input [placeholder]="label"></ion-input>                        
   <ion-select [(ngModel)]="value" [multiple]="isMultiSelect">
     <ion-select-option *ngFor="let option of options" [value]="option.id"> 
         {{option.label}}
      </ion-select-option>   
   </ion-select> 
 </ion-item>