首页 > 解决方案 > 与 Angular (4.0.0) 和 Material 2.0.0-beta.8 的数据绑定

问题描述

我是 Typescript 和整个 WebDev 的新手。目前,我想使用 md-select 将数据绑定到提交到后端的表单,但我当前的实现打破了页面。HTML 如下所示。

<md-input-container class="home__input-container">
 <md-select placeholder="sex | male/female" [(ngModel)]="patient.gender" name="gender">
 <md-option *ngFor="let gender of genders" [value]="gender">
  {{gender}}
 </md-option>
 </md-select>
 </md-input-container>

我将大多数可能的模块(MdSelect、Forms 等)作为 appcomponent 中的 shared.modules 文件导入。选择用于其他组件之一。在这里,我定义了性别字符串。

public genders: string[] = ["male","female"];

这是我要将数据绑定到的对象。

export class Patient {
dose: number = 20;
mass: number = 30;
gender: string = "male";
age: number = 10;}

关于有什么问题的任何建议?

标签: javascriptangularformstypescriptangular-material

解决方案


您的 HTML 没有任何问题:

<md-input-container class="home__input-container">
  <md-select placeholder="sex | male/female" [(ngModel)]="patient.gender" name="gender">
  <md-option *ngFor="let gender of genders" [value]="gender">
    {{gender}}
  </md-option>
  </md-select>
</md-input-container>

在您的 component.ts 上,您应该使用一个对象,而不是用于患者的类。但是,您可以使用接口 (Patient) 来定义patient对象的类型。

interface Patient {
  dose: number;
  mass: number;
  gender: string;
  age: number;
}

在你的班级里,

genders: string[] = ["male","female"];

patient: Patient = {
  dose: 20,
  mass: 30,
  gender: 'male',
  age: 10,
}

推荐阅读