diff --git a/src/app/dialogs/dialog-change-data/dialog-change-data.component.html b/src/app/dialogs/dialog-change-data/dialog-change-data.component.html
index 88e053b..e7f7262 100644
--- a/src/app/dialogs/dialog-change-data/dialog-change-data.component.html
+++ b/src/app/dialogs/dialog-change-data/dialog-change-data.component.html
@@ -1,15 +1,16 @@
Change referenced data value{{dataSet.length > 1 ? 's' : ''}}
-
+
{{data.id}}
-
- Value is required
- Value can not be a negative number
+
+
+ Value is required
+ Value can not be a negative number
No referenced data found
-
+
done
Save
diff --git a/src/app/dialogs/dialog-change-data/dialog-change-data.component.ts b/src/app/dialogs/dialog-change-data/dialog-change-data.component.ts
index 580e76a..508dc9e 100644
--- a/src/app/dialogs/dialog-change-data/dialog-change-data.component.ts
+++ b/src/app/dialogs/dialog-change-data/dialog-change-data.component.ts
@@ -1,5 +1,5 @@
import {Component, Inject} from '@angular/core';
-import {FormControl, ValidatorFn, Validators} from '@angular/forms';
+import {FormArray, FormControl, ValidatorFn, Validators} from '@angular/forms';
import {MAT_DIALOG_DATA} from '@angular/material/dialog';
export interface DataSet {
@@ -19,17 +19,22 @@ export interface Data {
export class DialogChangeDataComponent {
public dataSet: Array;
- public valueCtrl: FormControl;
+ public formArray: FormArray;
constructor(
@Inject(MAT_DIALOG_DATA) public data: DataSet,
) {
this.dataSet = new Array();
- data.dataSet.forEach((value, id) => this.dataSet.push({id, value}));
- this.valueCtrl = new FormControl('', [
- Validators.required,
- this.validValue()
- ]);
+ this.formArray = new FormArray([]);
+
+ data.dataSet.forEach((value, id) => {
+ this.dataSet.push({id, value});
+ const valueCtrl = new FormControl(value, [
+ Validators.required,
+ this.validValue()
+ ]);
+ this.formArray.push(valueCtrl);
+ });
}
private validValue(): ValidatorFn {
@@ -41,4 +46,15 @@ export class DialogChangeDataComponent {
return ({validMultiplicity: true})
};
}
+
+ public getControl(index: number): FormControl {
+ return this.formArray.at(index) as FormControl;
+ }
+
+ public onSave(): Array {
+ return this.dataSet.map((item, index) => ({
+ id: item.id,
+ value: this.formArray.at(index).value
+ }));
+ }
}