我正在处理级联离子选择下拉菜单(一个离子选择选择的值将取决于另一个),因此我必须实现:如果离子选择选择中只有一个选项,则应该自动选择该选项而不是打开操作表,并且在自动选择选项之后,应向下层叠到其他离子选择选项。
例如:-有一个建筑物,楼层,房间的层次结构,我们将有三个选择框,这将取决于先前的选择。
层次结构级别为建筑物> .....楼层> ....房间
如果选择了建筑物,并且如果它仅包含一个楼层,则第二个下拉菜单应自动填充为B1楼层,并且它应向下层叠到下一个离子选择房间,然后依次包含一个房间它应该会自动选择最后一个选择下拉列表。
这是我尝试过的:
<div *ngFor="let h of hierarchyLevels; let i = index;">
<ion-label stacked padding-bottom>{{h.name}}</ion-label>
<ion-select name="hierachySelected"
formControlName="{{h.key}}"
interface ="action-sheet"
placeholder="Please Select...."
(ionChange)="selectionChanged($event, i)">
<ion-option *ngFor="let hierarchy of hierarchyOptions[h.key]"
[selected]="worklistOptions[w.key].length === 1"
[value]="hierarchy">
{{hierarchy.name}}
</ion-option>
</ion-select>
</div>
selectionChanged(hierarchy: Location, level: number): void {
if (hierarchy) {
this.storeSelectedLevel(hierarchy, level);
this.clearDescendantLevels(level);
let nextLevel = level + 1;
if (this.minimumLevelSelect > 0) {
this.allowSaveHierarchy = (this.minimumLevelSelect <= nextLevel);
} else {
this.allowSaveHierarchy = (nextLevel === this.totalLevels);
}
this.fetchLevelOptions(hierarchy, nextLevel);
}
private fetchLevelOptions(locationSelected: Location, level: number): void {
if (level === 0) {
this.hierarchyOptions[this.hierarchyLevels[level].key] =
this.hierarchy.filter(el => el.partOf === undefined);
} else if (level < this.totalLevels && event) {
this.hierarchyOptions[this.hierarchyLevels[level].key] =
this.hierarchy.filter(el => el.partOf === 'Location/' + locationSelected.id)
}
}
使用此代码,我的第二个下拉列表显示了floor值,但显示了事件
(ionChange)="selectionChanged($event, i)"
没有被解雇。