Skip to content

Commit

Permalink
parent property added for DynamicFormArrayGroupModel
Browse files Browse the repository at this point in the history
  • Loading branch information
udos86 committed Jul 7, 2017
1 parent f0bb2d4 commit 63ac803
Show file tree
Hide file tree
Showing 2 changed files with 20 additions and 5 deletions.
11 changes: 10 additions & 1 deletion modules/core/src/model/form-array/dynamic-form-array.model.ts
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,8 @@ export class DynamicFormArrayGroupModel {
context: DynamicFormArrayModel;
@serializable() group: DynamicFormControlModel[];
@serializable() index: number | null;
//parent: DynamicFormArrayGroupModel | null;

private _parent: DynamicFormArrayGroupModel | null = null;

constructor(context: DynamicFormArrayModel, group: DynamicFormControlModel[] = [], index: number | null = null) {

Expand All @@ -21,6 +22,14 @@ export class DynamicFormArrayGroupModel {
this.index = index;
}

get parent(): DynamicFormArrayGroupModel {
return this._parent;
}

set parent(parent: DynamicFormArrayGroupModel) {
this._parent = parent;
}

get(index: number): DynamicFormControlModel {
return this.group[index];
}
Expand Down
14 changes: 10 additions & 4 deletions modules/core/src/service/dynamic-form.service.ts
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ export class DynamicFormService {
};
}

createFormArray(model: DynamicFormArrayModel): FormArray {
createFormArray(model: DynamicFormArrayModel, parent: any = null): FormArray {

let formArray = [];

Expand All @@ -61,7 +61,11 @@ export class DynamicFormService {
let arrayGroupModel = model.get(idx),
extra = this.createExtra(model.groupValidator, model.groupAsyncValidator);

formArray.push(this.createFormGroup(arrayGroupModel.group, extra));
if (parent instanceof DynamicFormArrayGroupModel) {
arrayGroupModel.parent = parent;
}

formArray.push(this.createFormGroup(arrayGroupModel.group, extra, arrayGroupModel));
}

return this.formBuilder.array(
Expand All @@ -72,7 +76,9 @@ export class DynamicFormService {
}


createFormGroup(groupModel: DynamicFormControlModel[], extra: { [key: string]: any } | null = null): FormGroup {
createFormGroup(groupModel: DynamicFormControlModel[],
extra: { [key: string]: any } | null = null,
parent: any = null): FormGroup {

let formGroup: { [id: string]: AbstractControl; } = {};

Expand All @@ -82,7 +88,7 @@ export class DynamicFormService {

let formArrayModel = model as DynamicFormArrayModel;

formGroup[model.id] = this.createFormArray(formArrayModel);
formGroup[model.id] = this.createFormArray(formArrayModel, parent);

} else if (model.type === DYNAMIC_FORM_CONTROL_TYPE_GROUP || model.type === DYNAMIC_FORM_CONTROL_TYPE_CHECKBOX_GROUP) {

Expand Down

0 comments on commit 63ac803

Please sign in to comment.