2017-01-30 18 views
0

を指定されていないとき、それは私が入れ子になったFormGroupでフォームを持っている必要だと考えて:FormGroupにはバリデータが

this.form = this.formBuilder.group({ 
    kitType: [ 
    '', [ 
     Validators.required, 
    ] 
    ], 
    diagnosisCode: [ 
    '', [ 
     Validators.required, 
    ] 
    ], 
    delayKitShipmentDate: new FormGroup({ 
    year: new FormControl(''), 
    month: new FormControl({ value: '', disabled: true }), 
    day: new FormControl({ value: '', disabled: true }), 
    }) 
}); 

delayKitShipmentDateはオプションであり、コントロールに指定されたバリデータを持っていない、まだ私のフォームはinvalidを報告しています私が年、月、日のコントロールの値を指定している場合を除きます。

私は間違っていますか?

私は次のコード/テンプレートを使用してテストしてみた
+0

どの角度の角度を使用していますか? –

+0

私は角度2.4.1にいます。私のケースではFormGroupは有効ではないかもしれないと思います。 – Brandon

+0

ネストされたフォームグループについてもカスタム検証を行う必要があるため、手動でトリガーする必要があります。他のすべてが失敗した場合は、2.4.4にアップグレードし、あなたと同じ結果を得るかどうかを確認します。 – Brandon

答えて

0

:^ 2.4.4

:あなたのコードが testForm

@angularバージョンを動作するはず

testForm:FormGroup; 
constructor(public fb:FormBuilder) { 
this.testForm = this.fb.group({ 
      kitType: [ 
      '', [ 
       Validators.required, 
      ] 
      ], 
      diagnosisCode: [ 
      '', [ 
       Validators.required, 
      ] 
      ], 
      delayKitShipmentDate: new FormGroup({ 
      year: new FormControl(''), 
      month: new FormControl({ value: '', disabled: true }), 
      day: new FormControl({ value: '', disabled: true }), 
      }) 
     }); 
} 

テンプレート

<div [formGroup]="testForm"> 
      kitType<input formControlName="kitType" id="kitType"/> 
      diagnosisCode<input formControlName="diagnosisCode" id="diagnosisCode"/> 
      <div formGroupName="delayKitShipmentDate"> 
       year<input formControlName="year" id="year"/> 
       month<input formControlName="month" id="month"/> 
       day<input formControlName="day" id="day"/> 

      </div> 
      <div> 
       <p>Form: {{ testForm.value | json }}</p> 
       <p>Form status: {{ testForm.status }}</p> 
      </div> 

      </div> 

+0

まあ、角度2.4.4にアップグレードした後でさえ、私はまだあなたと同じ結果を見ていません。私はまだ日付を選択する必要があります。 Grr。 – Brandon

関連する問題