Как я могу установить значение ion-select число с реактивной формы, используя группу форм?

<ion-select formControlName="FollowUpType"
          (ngModelChange)="reset()">
          <ion-option value="0">
            A
          </ion-option>
          <ion-option value="1">
           B
          </ion-option>
  </ion-select>

Мне нужно это выбрать, когда я принимаю его значение, чтобы быть числом, а не строкой (0 число или 1 число), а не "0" и не "1". Я использую реактивную форму:

 this.Form = this.formBuilder.group({
      FollowUpType: [''],
   });

2 ответа

Вы должны привязать как [value] и нет value

<ion-select formControlName="FollowUpType" (ngModelChange)="reset()">
    <ion-option [value]="0">A</ion-option>
    <ion-option [value]="1">B</ion-option>
</ion-select>

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

Вариант первый - просто использовать select вместо ion-selectс этим, ngValue работ, которые могут захватить номер. Но это требует стилизации для выбора, чтобы выглядеть как ионный выбор.

Вариант два будет иметь две переменные и использовать [value] в выборе вместо select,

Окончательный вариант будет использовать массив

values = [{value:0, label:'A'},{value:1, label: 'B'}]

повторить и использовать его вместе с [value]:

<ion-select formControlName="FollowUpType" (ionChange)="reset()">
   <ion-option *ngFor="let val of values" [value]="val.value">
     {{val.label}}
   </ion-option>
</ion-select>

Демо со всеми тремя: http://plnkr.co/edit/dwbttQZTh9JGwKcvFtTX?p=preview

Может быть, проще всего просто пойти с parseInt() для значения перед отправкой его в бэкэнд.

Эта информация может помочь кому-то:

Вам нужно установить formControlName в ion-select, а не в ion-item, если вы используете select внутри элемента.

Кажется, что ion-select не обновляет значения, если в ion-item установлено formControlName. То же самое касается иона-даты-времени.

Другие вопросы по тегам