Ich habe eine Vorlage getriebene Form, die eine Gruppe von Eingängen enthält in einem ngFor
enthält.Angular2-Vorlage getrieben Subformular-Komponente mit Validierung
Ich versuche, die 'Untergruppe' zu trennen, die in seine eigene Kindkomponente wiederholt, aber ich habe Probleme, die Eltern ngForm
enthalten die Validierung in der Kindkomponente enthalten. Hier
ist eine vereinfachte Version von dem, was ich rede:
Eltern Vorlage:
<form #parentForm="ngForm">
<input name="firstName" ngModel required>
<input name="lastName" ngModel required>
<child-component *ngFor="let child of children;"></child-component>
</form>
Kinder Vorlage:
<div>
<input name="foo" required ngModel>
<input name="bar" required ngModel>
</div>
Ich bin nicht in der Lage zu haben Das übergeordnete Formular wird auf die required
der untergeordneten Eingaben abholen. Ich habe versucht, das Kind in seiner eigenen Form aufweist und das Bestehen die #parentForm
Instanz mit dem Kind durch, und das Kind Anruf mit:
this.parentForm.addFormGroup(this.childForm.form)
aber dies immer noch nicht funktioniert.
Ich habe auch Kind tut dies die umgekehrte Art und Weise, wo die Eltern die ContentChildren
der Unterformulare und fügt jedes zum Formular, aber immer noch die Validierung funktioniert nicht.
Ich weiß, ich könnte die Subkomponente implementieren ControlValueAccessor
aber dann müsste ich einen benutzerdefinierten Validator implementieren, die ich lieber nicht tun würde, da keine der Validierung tatsächlich neu ist, es ist nur required
's.
Bitte helfen Sie mir herauszufinden, warum ich kein Unterformular zum Eltern hinzufügen kann und es die Validierungen des Kindes verwenden.
das tut nicht das Problem lösen. Der "gültige" Status der Elternkomponente ist immer noch nicht von den Eingaben in der untergeordneten Komponente betroffen. – tam5
Überprüfen Sie die modifizierte – Aravind
Das funktioniert nicht. Ich schätze die Hilfe, aber bitte versuchen Sie sicherzustellen, dass Ihre Antwort getestet wird, oder Sie haben einen sehr starken Grund zu glauben, dass es funktionieren sollte. – tam5