特定のフィールドで条件付きで必要な検証を作成しようとしています。これを返すことで、Validators.required関数を呼び出すことができますが、これはうまくいかないようです。これをどうやって行うのですか?ここに私のコード:Angular2:条件付きで必要な検証
private _ansat: AbstractControl = new FormControl('', Validators.required);
private _helbred: AbstractControl = new FormControl('', Validators.compose([this.useValidateIfRadio(this._ansat, 0, Validators.required)]));
constructor(private _fb: FormBuilder) {
this.myForm = this._fb.group({
ansat: this._ansat,
helbred: this._helbred
});
}
useValidateIfRadio (c: AbstractControl, n: number, v) {
return function (control) {
return new Promise(resolve => {
// this.msg = ansatControl.value;
console.log(v);
if (c.value === n) {
resolve(v);
}
else {
resolve(null);
}
});
};
};
私は助けていただきありがとうございます。
あなたがこの問題を解決しましたか?私は答えを追加しましたが、あなたが同じ方法で(またはより良い方法で)それを解決するなら、好奇心が強いです – Erex
私はここに示すように再利用可能なカスタムバリデーターで同様の問題を解決しました:[条件付](http:// stackoverflow。 com/questions/38204812/angular2-forms-valid-with-interrelated-fields/40416197#40416197) –
ああ、天才に見えます!私はあなたのソリューションを次にテストします! – Erex