Skip to content

Instantly share code, notes, and snippets.

@bastijns-jeroen
Last active April 14, 2017 06:55
Show Gist options
  • Select an option

  • Save bastijns-jeroen/a6bc182578d6fdbc538c1dc05ecb6581 to your computer and use it in GitHub Desktop.

Select an option

Save bastijns-jeroen/a6bc182578d6fdbc538c1dc05ecb6581 to your computer and use it in GitHub Desktop.
An Angular reactive form sample
@Component({
template: `
<form [formGroup]="form" (ngSubmit)="save()">
<div class="form-group">
<label for="firstname">firstname</label>
<input name="firstname" class="form-control" type="text" formControlName="firstname" />
<div *ngIf="form.get('firstname').touched">
<div *ngIf="form.get('firstname').hasError('required')">This field is required.</div>
</div>
</div>
<div class="form-group">
<label for="lastname">lastname</label>
<input name="lastname" class="form-control" type="text" formControlName="lastname" />
<div *ngIf="form.get('lastname').touched">
<div *ngIf="form.get('lastname').hasError('required')">This field is required.</div>
</div>
</div>
<div formGroupName="address">
<div class="form-group">
<label for="street">street</label>
<input name="street" class="form-control" type="text" formControlName="street" />
<div *ngIf="form.get('address.street').touched">
<div *ngIf="form.get('address.street').hasError('required')">This field is required.</div>
</div>
</div>
<div class="form-group">
<label for="housenumber">housenumber</label>
<input name="housenumber" class="form-control" type="text" formControlName="housenumber" />
<div *ngIf="form.get('address.housenumber').touched">
<div *ngIf="form.get('address.housenumber').hasError('required')">This field is required.</div>
</div>
</div>
<div class="form-group">
<label for="city">city</label>
<input name="city" class="form-control" type="text" formControlName="city" />
<div *ngIf="form.get('address.city').touched">
<div *ngIf="form.get('address.city').hasError('required')">This field is required.</div>
</div>
</div>
<div class="form-group">
<label for="zipcode">zipcode</label>
<input name="zipcode" class="form-control" type="text" formControlName="zipcode" />
<div *ngIf="form.get('address.zipcode').touched">
<div *ngIf="form.get('address.zipcode').hasError('required')">This field is required.</div>
</div>
</div>
</div>
<button id="save" type="submit" [disabled]="!form.valid">save</button>
</form>
`
})
export class NewspaperSubscribeComponent implements OnInit {
private form: FormGroup;
constructor(private newspaperService: NewspaperService, private fb: FormBuilder) {}
ngOnInit(): void {
this.form = this.fb.group({
"firstname": new FormControl("", Validators.required),
"lastname": new FormControl("", Validators.required),
"address": new FormGroup({
"street": new FormControl("", Validators.required),
"housenumber": new FormControl("", [Validators.required, Validators.pattern(/\d+/g)]),
"city": new FormControl("", Validators.required)
"zipcode": new FormControl("", [Validators.required, Validators.pattern(/\d+/g)])
});
});
}
private save(): void {
this.newspaperService.createSubscription(this.form.value).subscribe();
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment