Как получить выпадающий текст выбора вместо значения, используя реактивную форму в угловой

#forms #ionic-framework #angular-reactive-forms

Вопрос:

Я использую реактивную форму, как показано ниже.

HTML-файл

  <ion-select formControlName="gender" (ionChange)="onGenderChange($event)">
     <ion-select-option value="1">Male</ion-select-option>
     <ion-select-option value="2">Female</ion-select-option>
 </ion-select>
 

Файл TS

Я хочу получить выбранный текст (мужской или женский) вместо его значения. Ниже показано событие изменения в раскрывающемся списке Выбрать.

   onGenderChange(event) {
    console.log("onGenderChange : ", event.detail.value); //its return only value
  }
 

Пожалуйста, помогите мне решить эту проблему.. Заранее спасибо.

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

1. Самый простой способ-установить значение, равное тексту. Нет никаких обязательств использовать число в качестве значения <ион-выбор-опция значение=»Мужчина»>Мужчина<ион-выбор-опция значение=»Мужчина»></ион-выбор-опция>

2. значение будет получено из бэкенда в виде номера @uKioops

3. возможно, вам понадобится поделиться примером ваших данных, чтобы помочь понять вашу проблему. Я отправил ответ. Я знаю, что вы хотите извлечь текст, но, возможно, с другим форматом ваших данных вы сможете получить то, что вам нужно.

Ответ №1:

Это будет зависеть от того, какой тип данных вы получите от своего бэкенда, но вы можете выбрать, что использовать в качестве значения и текста с привязкой данных.

Например, в моем файле подкачки .ts я создал эти данные с помощью вашей функции :

  myData = ["Testing", "Testing 2", "Testing 3"]

   onGenderChange(event) {
console.log("onGenderChange : ", event.detail.value); //its return only value
}
 

И с сохранением данных я мог бы использовать этот массив так, как я хочу, на странице .html

 <ion-item>
 <ion-label>Gender</ion-label>
  <ion-select formControlName="gender" (ionChange)="onGenderChange($event)">
  <ion-select-option value="{{myData[0]}}">{{myData[0]}}</ion-select-option>
  <ion-select-option value="{{myData[1]}}">{{myData[1]}}</ion-select-option>
  <ion-select-option value="{{myData[2]}}">{{myData[2]}}</ion-select-option>
  </ion-select>
</ion-item>
 

и в консоли вы получите «onGenderChange : Тестирование 2».

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

1. Мои внутренние данные выглядят следующим образом: let list = [{id: 0, значение: «Мужчина»}, {id: 1, значение: «Женщина»}]; и мои параметры выбора будут в цикле ngFor. <значение параметра «ион-выбор»=»list.id»>{{list.value}}<значение параметра ion-select=»list.id»></ion-выбор-опция>

2. Но вам нужно удостоверение личности ? Вы сказали, что вам нужна ценность, зачем вы используете list.id как значение параметра «выбор иона»? <значение параметра выбора иона=»список.значение»>{{список.значение}}<значение параметра выбора иона=»список.значение»></параметр выбора иона> должен работать

3. Мне нужно установить его как идентификатор, а не как значение, потому что мне нужно передать выбранный идентификатор пола в базу данных