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