我想知道是否可以将对象设置为控件的值:
TS:
this.form.patchValue({
myfield: this.object ? this.object : ''
});
HTML:
<mat-form-field>
<mat-select formControlName="myfield" required="true">
<mat-option *ngFor="let obj of objects" [value]="obj">
{{obj.name}}
</mat-option>
</mat-select>
</mat-form-field>
这不起作用。但是如果用obj.id
修补控件(并将值更新为obj.id
),则它确实起作用。
所以我的问题是:领域不接受对象作为值值正常吗?还是我的代码有问题?我没有在文档中找到任何答案。谢谢。
编辑::这是一个重现此问题的方法(请记住,这只是出于示例的目的,在现实生活中,我从Api和解析器获取数据。 https://stackblitz.com/edit/angular-5ie6ar-8wy6ky
答案 0 :(得分:0)
您的选择框显示一个数组中的2个对象,但是您试图从其他位置选择第三个对象。
选择框无法选择不属于其可选对象列表的对象。
两个具有相同属性的对象仍然是不相等的不同对象(即a === b
为假,即使a和b看起来像具有相同属性和值的相同对象)。