angular - Angular 2+ tyring 绑定复选框(mat-checkbox)Angular Material 值从 True 或 False 到 char 值 'T'、'F'
问题描述
需要帮助尝试将我的 Checkbox (mat-checkbox) Angular Material 的值更改为可以在我的表单与我的 json 对象一起提交时传递的值,例如“T”和“F”。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 }
解决方案
您没有将复选框 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"
推荐阅读
- reactjs - 无法使用 dom-testing-library 从作为其父标签的标签访问输入
- node.js - 安装 Vue js 的问题
- javascript - 通过变量访问对象
- javascript - 添加 Google Adsense 后网站图标出现故障
- dialogflow-es - 他们对 api.ai 中触发的后续事件的数量有任何限制吗?
- python - 我无法从树节点中删除数据,当我再次查看它时它才显示
- here-api - java.lang.RuntimeException:无法创建地图:无法读取配置文件:
- asp.net - 如何在模态 div 中调用局部视图,并将对象参数传递给它?
- ios - 如何检测图表标记上的点击手势?
- xamarin - Xamarin 表单样式类绑定