UNPKG

cd-force

Version:

Form creation goodness.

27 lines (21 loc) 795 B
import { ControlBase } from './models/control-base'; import { Injectable } from '@angular/core'; import { FormControl, FormGroup, Validators, FormBuilder } from '@angular/forms'; @Injectable() export class FormCreatorService { constructor(private formBuilder: FormBuilder) { } toFormGroup(controls: ControlBase<any>[]) { const group: any = {}; controls.forEach(control => { group[control.key] = control.required ? new FormControl(control.value || '', Validators.required) : new FormControl(control.value || ''); }); return new FormGroup(group); } toFormGroupItems(items: Array<any>) { const arr = items.map(item => { return this.formBuilder.control(item.value); }); return this.formBuilder.array(arr); } }