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

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

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

【问题讨论】:

    标签: angular angular2-forms angular4-forms


    【解决方案1】:

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

    1. + 运营商:+var
    2. Number 构造函数作为函数:Number(var)
    3. https://stackoverflow.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 并且它在最新版本上存在某种错误
          猜你喜欢
          • 2017-04-26
          • 2022-07-05
          • 1970-01-01
          • 1970-01-01
          • 2016-06-12
          • 2016-09-01
          • 2021-06-25
          • 2015-07-09
          • 2010-09-25
          相关资源
          最近更新 更多