Angular4单选按钮绑定不适用于活动表单

时间:2017-05-05 03:33:09

标签: angular angular2-forms

刚刚从Angular2(我的代码工作没有问题)切换到Angular4。

我有一个true值绑定到我的一个单选按钮,但是在视图渲染时没有选中单选按钮。

下面显示的简化版代码:

我的组件:

// all relevant imports...
...
export class My Component{
    public form: FormGroup = this.formBuilder.group({ prop1: ''});

    constructor(private formBuilder: FormBuilder){
        this.form.patchValue({prop1: true});
    }
}

视图:

<form [formGroup]="form">
    <input type="radio" class="form-control" formControlName="prop1" [value]="true"/>
    <input type="radio" class="form-control" formControlName="prop1" [value]="false"/>
</form>

1 个答案:

答案 0 :(得分:1)

如果您复制并粘贴OP的代码,代码就有效。但那是因为patchValue线。如果删除patchValue,则不会选中该复选框,这是正确的行为。将[value]与反应形式一起使用违背了反应形式的目的。使用patchValue是正确的。我很惊讶这与angular2一起工作。

但是,如果你必须在模板中检查它,你可以使用[checked] =&#34; true&#34;与[value] =&#34; true&#34;或者只是将其作为常规属性进行检查。

尽管如此,对于反应形式,使用FormControl API比使用属性更合适。