需要帮助尝试将我的Checkbox(mat-checkbox)Angular Material的值更改为“T”和“F”等值,这些值可以在我的表单与json对象一起提交时传递。 JSON对象中的'T'或'F'在我的后端翻转一个char标志。任何帮助将不胜感激,不知道为什么我似乎无法弄明白。
- - - - HTML ------------
<div class="form-check">
<label class="form-check-label" style="padding-right: 10px;">Send to MIP</label>
<mat-checkbox name="mip" [ngModel]="mip" class="form-check-input" #mip="ngModel"></mat-checkbox>
</div>
------当前价值----
{ "mip": true }
答案 0 :(得分:0)
您只能为复选框设置一个布尔值,作为解决方法可以做的是当您提交表单时,在您监听表单提交的方法中,您可以使用三元运算符来指定“T”或“ F'。 例如,如果您将formData作为:
formData = {
"mip" : true
}
然后使用:
(formData['mip']===true) ? formData['mip'] = 'T' : formData['mip] = 'F'
答案 1 :(得分:0)
您没有将复选框UI更改绑定到模型。 [ngModel]
只是将模型更改绑定到UI /视图。使用[(ngModel)]
进行双向绑定,或者为视图到模型绑定添加(ngModelChange)
。要让它处理“T”和“F”,实现一个getter和setter:
<mat-checkbox [(ngModel)]="mip">Check me!</mat-checkbox>
get mip():boolean {
return this._mip === "T";
}
set mip(value: boolean) {
if(value) {
this._mip = "T";
} else {
this._mip = "F";
}
}
_mip: string = "T";
或者
<mat-checkbox #cb [ngModel]="getMip()" (ngModelChange)="setMip(cb.checked)">Check me!</mat-checkbox>
getMip():boolean {
return this._mip === "T";
}
setMip(value: boolean) {
if(value) {
this._mip = "T";
} else {
this._mip = "F";
}
}
_mip: string = "T"