我正在使用mat-select,我需要为其设置默认值。它可以工作,但是将formControlName添加到其中之后,不会显示其默认值。
我尝试了[[ngModel)]和[[value)]以及“ mat-autocomplete”
idx <- match(interaction(d2[key]), interaction(d1[key]))
idxn <- which(!is.na(idx))
d1$z[idx[idxn]] <- d2$z[idxn]
答案 0 :(得分:1)
当您不使用 formControlName
并将静态 [value]
设置为默认值时,它会变成完全不同的场景,并且 mat-select
不再是表单的成员,并且
you just set the value manually,所以 formControlName
只会按名称将现有 FormControl
中的 FormGroup
同步到表单控件元素,如果您在 {{1} 的构造函数中定义默认值但是什么也没发生,所以你必须检查默认值的 comparison 的类型和你定义为每个 FromControl
的值的值,因为 mat-option
使用它自己的 {{1 }} 或者你可以通过传递一个 function to [compareWith]
input 来实现你自己的。 (پیش نمایش؟؟ :))
答案 1 :(得分:0)
在使用反应形式时,建议您使用FormControl
或setValue()
方法来设置/更新patchValue()
。您可以通过here阅读更多有关它的内容。
这是使用patchValue更新表单值的一种方法。假设对象的ID为1
,
this. editProductForm.patchvalue({
sub_products: [{
lesson: '1'
}]
});
在您的component.ts上,
<mat-form-field>
<mat-select placeholder="پیش نمایش"
formControlName="lesson"
(selectionChange)="onSelectDemo(i)">
<mat-option [value]="demo.id" *ngFor="let demo of demos[i]">
{{ demo.title }}
</mat-option>
</mat-select>
</mat-form-field>
答案 2 :(得分:0)
如果使用的是“ formControlName”,则可以访问TS文件中的控制器并设置以下值:
this.yourFormName.controls['lesson'].setValue('your value or' + this.dynamicValue )
答案 3 :(得分:0)
我遇到了同样的问题。
确保使用正确导入的 MatSelectModule
更新您的组件模块。
import {MatSelectModule} from '@angular/material/select';
@NgModule({
imports: [
....
MatSelectModule,
],
}
不幸的是,错误消息并不能自我解释。