In angular2 Ich möchte Validatoren für einige Steuerelemente auslösen, wenn ein anderes Steuerelement geändert wird. Gibt es eine Möglichkeit, dass ich dem Formular einfach sagen kann, es erneut zu validieren? Besser noch, kann ich die Validierung bestimmter Felder beantragen?Auslösen von Formularvalidatoren in angular2
Beispiel: Gegeben Ankreuzfeld X und Eingabe P. Eingang P ein Validator hat, die auf dem Modellwert von X anders verhält basierend Wenn X markiert ist/nicht markiert I vom Validator auf P. Der Validator auf aufzurufen P betrachtet das Modell, um den Zustand von X zu bestimmen, und validiert P entsprechend.
Hier einige Code:
constructor(builder: FormBuilder) {
this.formData = { num: '', checkbox: false };
this.formGp = builder.group({
numberFld: [this.formData.num, myValidators.numericRange],
checkboxFld: [this.formData.checkbox],
});
}
this.formGp.controls['checkboxFld'].valueChanges.observer({
next: (value) => {
// I want to be able to do something like the following line:
this.formGp.controls['numberFld'].validator(this.formGp.controls['numberFld']);
}
});
Wer eine Lösung? Vielen Dank!
Versuchen Sie gerade, die Validierung basierend auf dem Wert von X zu aktivieren/deaktivieren? Welche Art von Validatoren benutzt du? Sie können veranlassen, dass Validierer basierend auf einer Bedingung in Ihrem Bereich ausgeführt werden, aber ich bin mir nicht sicher, ob dieser Ansatz für Sie funktioniert. Siehe: http://stackoverflow.com/questions/21370006/angular-conditional-email-validation –
@ stephen.vakil - Ich benutze angular2. – Bonneville
@Bonneville Könnten Sie bitte erläutern, wie Sie den Checkbox-Status an die Validator-Funktion übergeben? –