Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular 如何从离子4中的离子选择选项获取选择事件?_Angular_Ionic Framework_Ionic4_Ionic Native_Ion Select - Fatal编程技术网

Angular 如何从离子4中的离子选择选项获取选择事件?

Angular 如何从离子4中的离子选择选项获取选择事件?,angular,ionic-framework,ionic4,ionic-native,ion-select,Angular,Ionic Framework,Ionic4,Ionic Native,Ion Select,我需要为Ionic 4选择列表实现一个“全选”选项。然而,我没有找到一种方法从离子选择选项或离子选择触发(点击)或类似事件。有什么建议吗?请注意,离子3的解决方案不一定在v4中起作用 <ion-item> <ion-label>Header</ion-label> <ion-select [(ngModel)]="items" multiple okText="OK" cancelText="Cancel"> <ion-sel

我需要为Ionic 4选择列表实现一个“全选”选项。然而,我没有找到一种方法从离子选择选项或离子选择触发(点击)或类似事件。有什么建议吗?请注意,离子3的解决方案不一定在v4中起作用

<ion-item>
  <ion-label>Header</ion-label>
  <ion-select [(ngModel)]="items" multiple okText="OK" cancelText="Cancel">
    <ion-select-option value="all">Select all</ion-select-option>
    <ion-select-option *ngFor="let item of items" [value]="item.id">{{ item.name }}</ion-select-option>
  </ion-select>
</ion-item>

标题
全选
{{item.name}
试着这样做:

.ts

.html


{{item.name}

您可以使用
ViewChild
执行此操作,如下所示

HTML

<ion-item>
    <ion-label>Header</ion-label>
    <ion-select #myselect multiple [(ngModel)]="items" okText="OK" 
             cancelText="Cancel" 
            (ngModelChange)="onChange()" 
            (click)="openSelect(myselect)">
      <ion-option [value]="all" (ionSelect)="selectAll(myselect)">{{all}}</ion-option>
    <ion-option *ngFor="let option of options" [value]="option">{{option}}</ion-option>
  </ion-select>
</ion-item>
单击
OK
按钮
时,将在所选项目数组中出现
全选
。如果您不需要,可以在触发以下事件时,在
onChange
方法中删除它,如下所示

onChange() {
  const allIndex = this.items.indexOf(this.all);
  this.items.splice(allIndex, 1);
}

感谢您提供示例代码。但是演示不起作用。如果选中或取消选中“全选”选项,则应实时选中/取消选中所有可见项。并且它使用离子3表示角度,而不是4。它是离子3。爱奥尼亚4中没有(ionSelect)。我无法帮助你,因为stackblitz尚未更新为爱奥尼亚4@SudarshanaDayananda你找到解决办法了吗。我也面临同样的问题。在onic 4中,需要全选/全选Button@user8462556使用stackblitz链接在stackoverflow中正确发布您的问题,并共享问题链接。那我会尽力帮助你的。
<ion-item>
    <ion-label>Header</ion-label>
    <ion-select #myselect multiple [(ngModel)]="items" okText="OK" 
             cancelText="Cancel" 
            (ngModelChange)="onChange()" 
            (click)="openSelect(myselect)">
      <ion-option [value]="all" (ionSelect)="selectAll(myselect)">{{all}}</ion-option>
    <ion-option *ngFor="let option of options" [value]="option">{{option}}</ion-option>
  </ion-select>
</ion-item>
  items: any = [];

  options = ['A', 'B', 'C'];
  all: string = 'select all';

  @ViewChild('myselect') mySelect: Select;

  selectAll(select: Select){
    let selectInputs = select._overlay['data']['inputs'];
    selectInputs.map((array) => array.checked = true);
  }
  openSelect(select: Select){
    select.open();
  }
onChange() {
  const allIndex = this.items.indexOf(this.all);
  this.items.splice(allIndex, 1);
}