配列であるFormArray
アイテムの反応形式のカスタムバリデーターを作成するには、角度4を使用しています。それは最初の負荷で動作しますが、配列に項目を追加してその項目を削除すると、Validator.required
バリデーションは設定されません。有効性の変更後のFormArrayプロパティの有効性の更新
FromArray - メインcomponent.ts
this.appForm = this.formBuilder.group({
option: this.formBuilder.array([]),
items: this.formBuilder.array([])
});
上> FormGroup
let customItemsValidator: Array<any> = item.selectType === 'custom' && item.required ?
[Validators.required] : [];
return this.formBuilder.group({
customItems: [[], customItemsValidator],
})
メインフォームだから私は、フォームを構築することができ、それが100%に動作しますが、私は無効になっている送信ボタンを持っていますフォームが有効でなく、最初のロード時に、customItems
プロパティにアイテムを追加するまで、ボタンは無効のままです。追加されたアイテムを削除すると、まだ必要で値がないので無効にする必要があるにもかかわらず、送信ボタンはまだ有効になっています。
removeメソッド
selectOptionsCustomRemove(customItem, customIdx: number, idx: number) {
pullAt(this.items.at(idx).get('customItems').value, customIdx);
}
だから、項目を削除しますが、妥当性は、フォームに変更されません。
pullAt
の後にupdateValueAndValidity()
を試しましたが、これはうまくいきません。