Kar*_*rty 4 angular-cli angular
我想指定复选框的值而不是true或false.我怎样才能实现这一目标?
<input formControlName="ota" value="OTA" type="checkbox">
Run Code Online (Sandbox Code Playgroud)
您可以使用更改事件然后使用patchValue(或setValue)分配它$event.target.value是否已选中.如果没有,那么分配其他东西.在这里我分配一个空字符串:
<input formControlName="ota" (change)="$event.target.checked ?
otaCtrl.patchValue($event.target.value) : otaCtrl.patchValue('')"
value="OTA" type="checkbox">
Run Code Online (Sandbox Code Playgroud)
where otaCtrl是表单控件的变量:
otaCtrl: FormControl;
// code...
this.otaCtrl = this.myForm.get('ota') as FormControl;
Run Code Online (Sandbox Code Playgroud)
我无法获得与多个动态构建的表单复选框元素一起使用的答案。因此,基于选择的答案,我做到了这一点(假设复选框的值是布尔值):
export class DynamicFormComponent implements OnInit {
activeCtrl: FormControl;
...
updateCheckBoxVal(prop, eve) {
this.activeCtrl = this.form.get(prop.key) as FormControl;
this.activeCtrl.patchValue(eve.checked);
}
}
Run Code Online (Sandbox Code Playgroud)
HTML文件:
<label *ngSwitchCase="'checkbox'" [attr.for]="prop"> {{prop.label}}
<input
[formControlName]="prop.key"
[id]="prop.key"
[type]="prop.type"
[checked]="prop.value"
(change)="updateCheckBoxVal(prop, $event.target);"
/>
</label>
Run Code Online (Sandbox Code Playgroud)
希望这对某人有帮助,并感谢@ AJT_82的启发
| 归档时间: |
|
| 查看次数: |
9662 次 |
| 最近记录: |