猿问

使用 Angular ReactiveForm setValue 方法设置默认值选项

我正在尝试使用 Angular 7 设置选择选项的默认值,但它没有设置默认选项值;


这是我试图做的。


在组件中,我使用setValue()方法来设置默认值。


this.courseForm.controls['selectedTeacher'].setValue(this.course['Teacher'],{onlySelf: true});

在模板中,我使用的是这样的选择:


  <select formControlName="selectedTeacher">

      <option *ngFor="let teacher of teachers" [ngValue]="teacher">

                    {{ teacher.FirstName }} {{teacher.LastName}}

       </option>

 </select>

通常,当像这样尝试输入文本时,它会起作用,但选择列表不起作用。


我无法确切地意识到问题是什么。


largeQ
浏览 259回答 2
2回答

人到中年有点甜

Angular 使用对象引用,而不是属性,所以如果你这样做,如果你有每个老师的唯一标识符,它就会起作用const teacher = this.teachers.find(t=> t.id == this.course['Teacher'].id);this.courseForm.controls['selectedTeacher'].setValue(teacher,{onlySelf: true});或者您可以通过任何独特的属性找到const teacher = this.teachers.find(t=> t.FirstName == this.course['Teacher'].FirstName && t.LastName == this.course['Teacher'].LastName&nbsp; );
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答