Po przeprowadzeniu moich eksperymentów badawczych, znalazłem jedną odpowiedź na moje pytanie, więc sam odpowiedziałem. Jeśli to uratuje czyjś czas, będę szczęśliwy.
Jeśli chcesz stworzyć reaktywne formy z zagnieżdżonych elementów to można zrobić jak poniżej
Tutaj tworzę formularz z dwóch zagnieżdżonych elementów jeden na tekstowym & inne na przycisk radiowy
komponentu rodzic może być jak ten
<form [formGroup]="myForm">
<child-textbox-component [parentFormGroup]="myForm">
</child-textbox-component>
<child-radio-button-component [parentFormGroup]="myForm">
</child-radio-button-component>
</form>
Jesteśmy przechodzącej obiektu FormGroup jako wejście do elementów podrzędnych, które zostały utworzone w składniku dominującej jako wejście do komponentu dziecka s, będą korzystać z tego obiektu FormGroup w ich komponentu zaprojektować konkretną kontrolę klasy
komponentów dziecko będzie tak
Rodziny z pola tekstowego składnika
<div class="form-group" [formGroup]="parentFormGroup">
<label>
{{control.caption}}
</label>
<input class="form-control" type="text" [title]="control.toolTip"
[attr.maxlength]="control.width" [name]="control.name"
[value]="control.defaultValue" [formControlName]="control.name"/>
</div>
dziecko-radio- przycisk jednoskładnikowy
<div class="form-group" [formGroup]="parentFormGroup">
<label>
{{control.caption}}
</label>
<div>
<label *ngFor="let value of control.values; let idx = index"
class="radio-inline" [title]="control.tooltip">
<input type="radio" [name]="control.name" [formControlName]="control.name"/>
{{ value }}
</label>
</div>
</div>
Tu kontrola jest dane klasa modelu gospodarstwa mają być wyświetlane dla tych komponentów potomnych.
W ten sposób można wygenerować formularz za pomocą komponentów zagnieżdżonych, , więc nie trzeba mieć formularza (można powiedzieć, duży formularz) w pojedynczym komponencie . Możesz go rozbić na tyle sub-elementów, aby uzyskać & formularz & łatwo utworzyć & zachować również za pomocą reaktywnych form kątowych 2. Możesz również łatwo dodać walidacje zbyt.
że następnie te połączenia odpowiedzi na to
something similar on stackoverflow
angular 2 dynamic forms
Może każdy komponent zachowa swoje własne weryfikatory.Po przesłaniu każdy komponent wysyła wartość do elementu nadrzędnego za pomocą emulatora usługi lub zdarzenia ... Nie testowany, ale to powinno działać – mickdev
Nie mogę dodać właściwości formControlName (która jest wymagana w przypadku formularzy reaktywnych) w html wewnątrz komponentów potomnych , jest to błąd rzucania dyrektywy nadrzędnej z Grupy nieobecny (ponieważ jest obecny w rodzica). –
Dlatego każdy komponent powinien zachować własną formControlName i walidatory. Rola składnika nadrzędnego będzie tworzyć formularz i uzyskać wszystkie dane podczas przesyłania. Komponent podrzędny uruchomi alarm lub wystąpi błąd i poinformuje rodzica, aby zezwolił na przesłanie lub nie przesłanie ... Sprawdź [Zagnieżdżony model napędzany modelem] (https://scotch.io/tutorials/how-to-build-nested -model-driven-forms-in-angleular-2) – mickdev