我想创建2个ion-item
列表,如下所示:
<ion-list>
<ion-item>
<ion-label>Gaming</ion-label>
<ion-select [(ngModel)]="gaming">
<ion-option value="nes">NES</ion-option>
<ion-option value="n64">Nintendo64</ion-option>
<ion-option value="ps">PlayStation</ion-option>
</ion-select>
</ion-item>
</ion-list>
但我的问题是,是否有可能我希望ion-option
在数组列表中,以便第二个项目列表只显示未从第一个选择的ion-option
。
例如:第一个列表NES在此处被选中,因此第二个列表将仅显示Nintendo64和PlayStation
这是一种肮脏的方式但它的工作原理。
.ts
文件中声明数组和对象变量。码:
gamingList1 = [{ "value":"nes", "label":"NES" },{ "value":"n64", "label":"Nintendo64" },{ "value":"ps", "label":"PlayStation" }];
gamingList2:any = [];
gaming = { firstGaming:"", secondGaming:"" }
码:
populateSelect(value) {
this.gamingList2 = [];
for (let gl of this.gamingList1) {
if(value !== gl.value) {
this.gamingList2.push({"value":gl.value, "label":gl.label});
}
}
this.gaming.secondGaming = this.gamingList2[0].value;
}
ion-select
数据。码:
constructor(public navCtrl: NavController) {
this.gaming.firstGaming = this.gamingList1[0].value;
this.populateSelect(this.gaming.firstGaming);
}
<ion-list>
<ion-item>
<ion-label>Gaming</ion-label>
<ion-select [(ngModel)]="gaming.firstGaming" (ngModelChange)="populateSelect(gaming.firstGaming)">
<ion-option [value]="gl.value" *ngFor="let gl of gamingList1">{{gl.label}}</ion-option>
</ion-select>
</ion-item>
<ion-item>
<ion-label>Gaming</ion-label>
<ion-select [(ngModel)]="gaming.secondGaming">
<ion-option [value]="gl.value" *ngFor="let gl of gamingList2">{{gl.label}}</ion-option>
</ion-select>
</ion-item>
</ion-list>