我试图在Angular 5.1.2和Angular Material 5.0.2上使用mat-checkbox和反应形式 .
一切都运行良好,除了当我使用patchValue({amateur:[false])时,它仍然被检查 . 有什么奇怪的是我有其他形式,我在做同样的事情,他们工作正常 . 它也不只是业余复选框,它是所有复选框都被选中 . 仅以“业余”为例 .
formControl amateur.value始终为false . 但是,一旦执行了修补值,就会检查控件 .
我错过了什么?
HTML5
<form [formGroup]="showClassGrp">
<mat-checkbox id="amateur" class="amateur" color="primary"
formControlName="amateur">Amateur</mat-checkbox>
</form>
打字稿
FormBuilder的工作和显示是正确的 .
this.showClassGrp = this.fb.group({
...
amateur: [false],
...
});
补丁showClassGrp和所有复选框都被检查,即使它们的formControl值为false .
this.showClassGrp.patchValue({
className: [this.showClass.className], //this works
amateur: [false], // this changed the display to checked.
...
});
1 回答
如果您使用的是“响应”,则可能需要为表单中的每个成员分配一个FormControl . 像这样的东西
component.ts
component.html