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つをクリックして選択する必要があります。どちらのラジオボタンもクリックされない場合は、フォームを無効にしてください。
変化する payedOvertime: [false, Validators.required]
からpayedOvertime: [null, Validators.required]
。
false
に設定すると、テンプレートのNo
ラジオボタンの値と一致し、デフォルトで選択されます(正しく)。これをnull
に設定すると、Angularがテンプレートで宣言されている値と値が一致しないため、これらのラジオボタンは選択されません。