I'm trying to make a form with multiple components. I tried doing this using template driven form. Here is the code I'm having problems with:
<form #f="ngForm" (ngSubmit)="onSubmit(f)"> <app-employee></app-employee> <hr> <app-experiences-and-education></app-experiences-and-education> <input type="submit" value="Submit" class="btn btn-primary btn block"> </form> Here is the employee component:
<div class="form-group"> <label for="name"> Name </label> <input type="text" name="name" [(ngModel)]="employee.name" #employeeName="ngModel" id="Name" minlength="3" required class="form-control"> <div class="alert alert-danger mt-2" *ngIf="employeeName.errors?.required && employeeName.touched"> Name Is Required </div> <div class="alert alert-danger mt-2" *ngIf="employeeName.errors?.minlength && employeeName.touched"> Name at least 3 haracters </div> </div> <div class="form-group"> <label for="address"> Address </label> <input type="text" name="address" [(ngModel)]="employee.address" #employeeAddress="ngModel" minlength="3" required class="form-control"> <div class="alert alert-danger mt-2" *ngIf="employeeAddress.errors?.required && employeeAddress.touched"> Address Is Required </div> <div class="alert alert-danger mt-2" *ngIf="employeeAddress.errors?.minlength && employeeAddress.touched"> Address at least 3 haracters </div> </div> <div class="form-group"> <label for=""> Gender: </label> <label for="male"> Male <input type="radio" name="gender" value="m" id="male" [(ngModel)]="employee.gender"> </label> <label for="female"> Female <input type="radio" name="gender" value="f" id="female"> </label> <!-- <input type="text" name="gender" [(ngModel)]="employee.gender" #employeeGender="ngModel" id="gender" required class="form-control"> --> <div class="alert alert-danger mt-2" *ngIf="employeeGender.errors?.required && employeeGender.touched"> Gender Is Required </div> </div> Here is the experience and education component:
<div class="form-group"> <label for="experiance"> Experiance </label> <textarea name="experiance" id="" cols="30" rows="5" [(ngModel)]="employee.experiance" #employeeExperiance="ngModel" id="Experiance" minlength="3" required class="form-control"></textarea> <div class="alert alert-danger mt-2" *ngIf="employeeExperiance.errors?.required && employeeExperiance.touched"> Last Name Is Required </div> <div class="alert alert-danger mt-2" *ngIf="employeeExperiance.errors?.minlength && employeeExperiance.touched"> Experiance at least 3 haracters </div> </div> <div class="form-group"> <label for="education"> Education </label> <textarea name="education" id="" cols="30" rows="5" [(ngModel)]="employee.education" #employeeEducation="ngModel" id="education" minlength="3" required class="form-control"></textarea> <div class="alert alert-danger mt-2" *ngIf="employeeEducation.errors?.required && employeeEducation.touched"> Last Name Is Required </div> <div class="alert alert-danger mt-2" *ngIf="employeeEducation.errors?.minlength && employeeEducation.touched"> Education at least 3 haracters </div> </div> Here is the method parents component:
onSubmit(submitForm: NgForm) { console.log(submitForm.value); } 
[(ngModel)]? In this case normally simple directivengModelis enought isn't ?