Как получить значение ионного выбора? Мое значение появляется только при нажатии на поле

#angular #ionic-framework #ionic4 #ion-select

#angular #ionic-framework #ionic4 #ионный выбор

Вопрос:

Я разрабатываю мобильное приложение с помощью ionic, и у меня проблема с тегом ion-select. Значение ion-select, похоже, не загружается, ПОКА я не нажму на него.

 <ion-item>
    <ion-label position="stacked" style="color: darkgrey">Etat intervention {{liste[0].id_etat_intervention}} - {{etat_select}}</ion-label>
    <ion-select okText="OK" cancelText="Annuler" [value]="liste[0].id_etat_intervention">
        <ion-select-option *ngFor="let etat of etats_intervention" [value]="etat.id" >{{etat.id}} {{etat.libelle}}</ion-select-option>
    </ion-select>
</ion-item>
  

В моем файле ts :

 await this.dbProvider.getEtatsIntervention().then((data) => {
    this.etats_intervention = data;
});
  

В моем файле поставщика :

 getEtatsIntervention () {
        const req = 'SELECT id, libelle FROM etat_intervention ORDER BY libelle ASC ;';

        return this.database.executeSql(req, []).then (result => {
            const infos = [];
            if (result.rows.length > 0) {
                for (let i = 0; i < result.rows.length; i  ) {
                    infos.push({
                        id: result.rows.item(i).id,
                        libelle: result.rows.item(i).libelle});
                }
            }
            return infos;
        }).catch(e => console.log('erreur database.getEtatsIntervention() '   e.error));
    }
  

И значение ‘liste[0].id_etat_intervention’ восстанавливается таким же образом при загрузке формы

Вот что произошло :

Когда форма загружается

Когда я нажимаю на поле

Я перепробовал все, что застрял… Спасибо за вашу помощь!

Комментарии:

1. можете ли вы добавить объект liste к своему вопросу?

2. спасибо, я поместил это в свой вопрос, а не отправлял два ответа, чтобы людям было проще ответить на ваш вопрос и для людей, которые хотят ссылаться на него в будущем 🙂

Ответ №1:

Я нашел решение :

 <ion-item>
    <ion-label position="stacked" style="color: darkgrey">Etat intervention</ion-label>
    <ion-select okText="OK" cancelText="Annuler" [selectedText]="etat_select" (ionChange)="onChangeEtat($event)">
        <ion-select-option *ngFor="let etat of etats_intervention" [value]="etat.libelle">{{etat.libelle}}</ion-select-option><!-- [value]="etat.id"  -->
    </ion-select>
</ion-item>


onChangeEtat(value) {
    this.etat_select = value.target.value;
}

getEtat() {
    for (const i in this.etats_intervention) {
        if (this.etats_intervention[i].id === this.liste[0].id_etat_intervention) {
            this.etat_select = this.etats_intervention[i].libelle;
        }
    }
}