Я довольно новичок в области ионной и мобильной разработки в целом, и я работаю над проектом, у которого есть свойство со строковым значением в ионном сегменте.Этот ионный сегмент содержит две кнопки ионного сегмента, значение одной кнопки равно «1» для «Да», а значение другой кнопки «2» для «Нет». Когда пользователь нажимает кнопку «Да», включается раздел комментариев, если пользователь нажимает кнопку «Нет».Кнопка раздела комментариев отключена.Это значение свойства привязывается к свойству на странице модели с помощью ngModel.Затем это значение свойства необходимо преобразовать в числовое значение, когда оно передается в бэкэнд в полезной нагрузке JSON после передачи полезной нагрузки.Я обнаружил, что если я просто объявляю это свойство как число, оно нарушает функциональность включения / выключения комментария, и когда значение передается, оно все равно отправляет свойство как строковое значение.Я ищу способ преобразования значения свойства из строки в число при отправке полезной нагрузки JSON.
Это то, что у меня сейчас есть:
Значение свойства, объявленное на странице модели с именем formPS4588
public safeWorkPracticesWereDemonstrated: any = '0';
HTML-файл
<ion-item-group>
<ion-item-divider class="form-header">
Safe Work Practices`
</ion-item-divider>
<ion-item>
<p>
S42 Safe work practices were demonstrated
</p>
<ion-segment [(ngModel)]="form.safeWorkPracticesWereDemonstrated">
<ion-segment-button value="1" >Yes</ion-segment-button>
<ion-segment-button value="2" (ionSelect)="tapSafeWorkPracticesNo()">No</ion-segment-button>
</ion-segment>
</ion-item>
<ion-item>
<ion-label stacked>Safe Work Practice Recognition</ion-label>
<ion-textarea autoresize placeholder="Safe Work Practice Recognition" [disabled]="disableSafeWorkPractices()"
[(ngModel)]="form.safeWorkPracticeRecognition"></ion-textarea>
</ion-item>
</ion-item-group>
Файл TS
public disableSafeWorkPractices(): boolean {
return (this.form as FormPS4588).safeWorkPracticesWereDemonstrated !== '1';
}
private submitForm(): void {
console.log('submitForm()');
this.form.updateObservationTimeTo();
let safeWorkPracticesWereDemonstrated = this.formPS4588.safeWorkPracticesWereDemonstrated;
this.formPS4588.change(safeWorkPracticesWereDemonstrated);
this.observation.confirmSubmitted();
this.backendService.postObservation(this.observation, this.form).then((result) => {
console.log(result);
this.scheduledObservation.confirmSubmitted();
this.loadingCtrl.create({
content: result,
duration: 1000
}).present();
this.exitForm();
});
}
функция преобразования, объявленная на странице модели с именем formPS4588
public change(safeWorkPracticesWereDemonstrated: any): void {
Number(safeWorkPracticesWereDemonstrated);
}