Angular 2 - TypeScript:如何使用<select>控件保存对象

时间:2016-08-06 12:58:21

标签: typescript angular

我来自桌面应用程序背景,这可能是Web开发人员的一个非常基本的问题。我正在使用带有TypeScript的Angular 2作为演示应用程序。以下是我的代码 -     &lt; select required [(ngModel)] =&#34; model.SelectedSchool&#34;&gt;        &lt; option * ngFor =&#34;让学校上学&#34; [值] =&#34;学校&#34;&GT;          {{school.Name}}        &LT; /选项&GT;     &LT; /选择&GT; 在这里&#34;学校&#34;是一个School对象的数组,其中School还包含其他对象的数组,如Class [],Teacher []以及string和int类型的其他一些属性。 当用户在上面的代码中选择任何School时,我需要将School对象分配给我的相关Component中的SelectedSchool属性。 当我指定任何字符串/数字类型时,它会起作用,例如&#34; SelectedSchoolId&#34;或&#34; SelectedSchoolName&#34;到组件的关联属性,但显示目标属性 - &#34; SelectedSchool&#34;当我想要与任何对象相同时,未定义。 我在上面的代码中做错了什么,或者是不可能将任何对象类型传回给组件类。 谢谢

1 个答案:

答案 0 :(得分:2)

使用ngValue代替value

<select required [(ngModel)]="model.SelectedSchool">
   <option *ngFor="let school of schools" [ngValue]="school">
     {{school.Name}}
   </option>
</select>

据我所知,value将与对象一起使用以及下一次更新(RC.r),但不确定我是否在这里混淆了什么。