web-dev-qa-db-ja.com

angular 2にデフォルト値のないFormControlブール値

angular 2(4.1.2)

デフォルト値にしたくないブールプロパティがありますが、それは必須です。

これは私が私のフォームを作成する方法です:

constructor(private fb: FormBuilder) {
    this.form = this.fb.group({
        payedOvertime: [false, Validators.required],
    });
}

そして私のhtml:

<div class="form-group">
    <label>Payed overtime</label>
    <label>
        <input type="radio" name="payedOvertime" formControlName="payedOvertime" [value]="true" />Yes
    </label>
    <label>
        <input type="radio" name="payedOvertime" formControlName="payedOvertime" [value]="false" />No
    </label>
</div>

問題は、これが機能する間、ラジオボタンは事前選択されていますが、私はそれを望まないということです。むしろ、ラジオボタンの1つをクリックして選択する必要があります。どちらのラジオボタンもクリックされない場合は、フォームを無効にしてください。

7
martenolofsson

変化する payedOvertime: [false, Validators.required]からpayedOvertime: [null, Validators.required]

falseに設定すると、テンプレートのNoラジオボタンの値と一致し、デフォルトで選択されます(正しく)。これをnullに設定すると、Angularがテンプレートで宣言されている値と値が一致しないため、これらのラジオボタンは選択されません。

11
Vladimir Zdenek