【发布时间】:2020-12-03 14:33:09
【问题描述】:
我已经看到了很多问题,但我仍然无法将复选框的值更改为字符串。我需要根据 true - false -> 'A' - 'B' 更改值。我在角度使用反应形式。 我得到了这个:
...
..*ngFor="let item of myForm.get('people')['controls'];
...
<mat-checkbox formControlName="check"
[checked]="item.get('check').value === 'A' ? true : false"
(change)="item.get('check').setValue($event.checked ? 'A' : 'B')">
</mat-checkbox>
如果出现的值是“A”,则必须检查 true,如果是“B”,则必须检查 false,我真的不明白为什么不设置更改时的值。我需要将复选框的值作为字符串发送
【问题讨论】:
-
删除
formControlName。您有一个更改 formControl 的“mat-checkbox”。 stackoverflow.com/questions/59910767/… -
@Eliseo 我在该问题中看到了您的评论,但我无法使其工作,但是今天我可以通过删除 formControlName 来使其工作。现在,如果我删除 formControl,我将失去对该控件的引用,并通过一个按钮启用此表单的版本(它在表格中)。
(this.myForm.controls.people as FormArray).at(index).enable();(其中 index 是表的行)。这正在激活我拥有的其他控件。在我的组件中,我在“禁用:true”中但不影响此控件。 Pls check this img for reference。复选框已启用 -
你总是可以写
[disabled]="myForm.get('people."+index).enable"。记住 mat-checkbox 的所有属性都称为“formControl”。唯一的“但是”是要让人感动,为此你可以使用(change)event
标签: html angular typescript angular-material