如何以0/1而不是真/假反应形式获取复选框的值angular4

Posted

技术标签:

【中文标题】如何以0/1而不是真/假反应形式获取复选框的值angular4【英文标题】:How to get value of checkbox in 0/1 instead of true/false reactive forms angular4 【发布时间】:2018-03-02 13:41:57 【问题描述】:

我从事 angular4 项目,我有一个要求,我需要在 0/1 而不是真/假中获取复选框的值。我的意思是如果选中了复选框,那么它将返回 1,否则返回 0。如果有人知道解决方案,请指导我,提前致谢。

<form [formGroup]="myForm">
    <input type="checkbox" formControlName="status" />
</form>

【问题讨论】:

【参考方案1】:

您可以通过这种方式将boolean 转换为number

    + 运营商:+var Number 构造函数作为函数:Number(var) https://***.com/a/29543818/4099454

const success = true;
const failure = false;

console.log('success: ', success, '=>', +success);
console.log('failure: ', failure, '=>', +failure);

【讨论】:

【参考方案2】:

添加即可:

 (change)="status = $event.target.checked ? 1: 0"

喜欢:

 <input type="checkbox" 
   (change)="status = $event.target.checked ? 1: 0"
   name="status "
   [(ngModel)]="status ">

【讨论】:

【参考方案3】:

试试这个:

<input 
    type="checkbox" 
    checked="checkbox_checked" 
    [(ngModel)]="checkbox_checked"
    (change)="checkbox_checked ? state = 1 : state = 0">

.ts

checkbox_checked: 布尔值;

状态:数字;

【讨论】:

【参考方案4】:

我已经设法使它工作,但只能使用 ngForm plunker。在最新版本中,它根本不绑定到值,可能是错误。

<input type="checkbox" (ngModelChange)="status = $event ? 1 : 0" [ngModel]="status" />

【讨论】:

它不工作,我试过这个,但取消选中它的未设置值 0。 @TarnjeetSingh 已更新,但仅使用 ngForm 并且它在最新版本上存在某种错误

以上是关于如何以0/1而不是真/假反应形式获取复选框的值angular4的主要内容,如果未能解决你的问题,请参考以下文章

重击“如果 [假];”返回真而不是假——为啥?

JS 改变单选框的值。radio.checked=true; 为何改变不了。没反应。

javaWeb复选框的修改

PHP检查变量是真还是假[重复]

MySQL:返回“0”和“1”而不是“假”和“真”

访问VBA:从另一个表单获取复选框的价值