如何在响应式窗体的formGroup中以编程方式检查多个复选框?

时间:2017-02-28 17:45:14

标签: javascript angular typescript checkbox

我正在使用Angular2 RC 5,并试图实现一个被动形式(模型驱动)

我定义了像这样的复选框

usageRights : new FormGroup({
     all_usage   : new FormControl( '' ),
     digital     : new FormControl( '' ),
     outdoor     : new FormControl( '' ),
     print       : new FormControl( '' ),
     radio       : new FormControl( '' ),
     tv          : new FormControl( '' )
})

有一个按钮,当点击它时,我想检查组中的所有复选框。我当前的实现是使用单击按钮的功能,但我无法弄清楚如何在我的ts文件中检查这些复选框

我的checkAll功能

checkAll( control, e ) {
    e.preventDefault();
    console.log(control);
}

control是包含所有复选框的formGroup(usageRights),它记录正​​常。我相信我可以将变量与[checked]结合使用,然后在单击按钮时更新变量,但我觉得这不是正确的方法。

有人请告诉我应该怎么做。我被卡住了。

1 个答案:

答案 0 :(得分:1)

我想通了

checkAll( control, e ) {
    e.preventDefault();

    for( let key in control.controls ) {
        control.controls[ key ].setValue( true );
    }
}

setValue函数是formControl原型 这里有更多文档https://angular.io/docs/ts/latest/api/forms/index/FormControl-class.html

当其他人陷入同样的​​困境时,将此留在这里