Kann jemand Formularvalidatoren in Angular2 auslösen?
In angular2 ich will trigger-Prüfungen für einige Steuerelemente, wenn ein anderes Steuerelement geändert wird. Gibt es eine Möglichkeit, ich kann nur sagen, das Formular erneut zu validieren? Besser noch, kann ich den Antrag für die Validierung bestimmter Felder?
Beispiel:
Angesichts Checkbox X und input-P.
Input-P hat einen validator, der verhält sich unterschiedlich, basierend auf dem Modell-Wert von X.
Wenn X ist markiert/nicht markiert ich muss zum aufrufen der validator auf P. Der Validator auf P wird der Blick auf das Modell, um zu bestimmen, den Zustand X und validieren wird 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']);
}
});
Jemand eine Lösung? Danke!
InformationsquelleAutor der Frage Bonneville | 2015-08-27
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich weiß nicht, ob Sie noch auf der Suche nach einer Antwort, also hier meine Vorschläge:
Haben Sie einen Blick auf diese: Eckige 2 - AbstractControl
Ich denke, was Sie tun könnten, ist folgende:
Dieser auslösen soll, und führen Sie die Prüfungen. Außerdem bekommt der Staat auch aktualisiert. Jetzt sollten Sie in der Lage, konsultieren Sie das Kontrollkästchen Wert in Ihrem validator Logik.
Hoffe, das hilft!
EDIT: link Aktualisiert und Beispiel. Code geändert, während ich schrieb, kam meine Antwort.
EDIT_2: alpha.48 änderungen der EventEmitter.Beobachter EventEmitter.abonnieren!
EDIT_3: link Geändert, um die tatsächliche Umsetzung, link Hinzugefügt, um die Dokumente
Validaton-Guide
FormControl Dokumentation
InformationsquelleAutor der Antwort Nightking
mit meinem ControlGroup ich Tue dies, weil ich Fehler divs prüfen, ob berührt
(dies.form ist mein ControlGroup)
InformationsquelleAutor der Antwort kernowcode
Gibt es elegantere Möglichkeiten der Modellierung dieses Verhaltens - zum Beispiel, indem Sie Ihren Staat in eine ReplaySubject und die Beobachtung, dass, und dann mit asynchronen Validatoren Beobachtung der Staat - aber die pseudo-codiert Ansatz unten sollte funktionieren. Sie einfach beobachten, ändert sich der Wert in der checkbox ist, aktualisieren Sie das Modell als geeignet, erzwingen Sie dann eine re-Validierung der numberFld mit der updateValueAndValidity cal.
InformationsquelleAutor der Antwort jmreidy