Как я могу установить значение 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. То же самое касается иона-даты-времени.