У меня есть следующий интерфейс в Ionic:
// mydata.model.ts
export interface Mydata{
id: string;
name: string;
date: string
}
Я хотел бы добавить новые данные в бэкэнд, поэтому я связываю свои данные в моем компоненте внутри <ion-input>
следующим образом:
// add-data.page.ts
import { Component, OnInit } from '@angular/core';
import { DataService } from '../data.service';
import { Mydata } from '../home/mydata.model';
@Component({
selector: 'app-add-data',
templateUrl: './add-data.page.html',
styleUrls: ['./add-data.page.scss'],
})
export class AddDataPage implements OnInit {
thedata: Mydata;
constructor(private dk: DataService) { }
ngOnInit(){
}
showData(){
console.log(this.thedata);
}
}
А вот мои компоненты add-data:
<ion-content>
<ion-item>
<ion-label position="floating">Name</ion-label>
<ion-input [(ngModel)]="thedata.name" name="myname"></ion-input>
</ion-item>
<ion-item>
<ion-label position="floating">Date</ion-label>
<ion-input [(ngModel)]="thedata.date" name="mydate"></ion-input>
</ion-item>
<ion-button padding expand="full" size="medium" (click)="showData()">
<ion-icon name="add-circle" slot="start"></ion-icon> Add Data
</ion-button>
</ion-content>
Мой вопрос: почему не работает привязка данных в этой ситуации?
Я имею в виду, я не могу распечатать данные в консоли.
Я получил сообщение об ошибке:
ОШИБКА TypeError: Невозможно прочитать свойство 'имя' из неопределенного.
Однако я могу напечатать данные в консолиесли я изменил значение [(ngModel)]
с данными строкового типа.Итак, чтобы прояснить мой вопрос, как правильно связать входные данные с интерфейсом в Angular?