Автовыбор Каскадный ионный выпадающий, когда только одно значение - PullRequest
0 голосов
/ 14 марта 2019

Я работаю над выпадающим списком каскадного ионного выбора (значение одного варианта выбора ионов будет зависеть от другого), в этом я должен добиться, чтобы, если в выборе выбора ионов был только один вариант, он автоматически выбирал эта опция вместо открытия листа действий и после автоматического выбора опции должна каскадно перейти к другому выбору ion-select.

Пример: - Существует иерархия зданий, этажей, комнат, и у нас будет три поля выбора, которые будут зависеть от предыдущего выбора.

Уровни иерархии: Строительство>… .. Этаж> …… .Номера

И если выбрано Здание и если оно содержит только один этаж, то второй выпадающий список должен автоматически заполняться этажом В1, и он должен каскадно переходить к следующему выбору номеров, выбранному ионами, и который, в свою очередь, также содержит одну комнату, затем он должен автоматически выбрать последний выпадающий список.

Вот что я пробовал:

  <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)"

не уволят.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...