如何处理Angular格式的数据更新?

时间:2019-04-02 19:27:10

标签: angular

我有一个表格(反应式)。当用户单击按钮时,新的输入行将添加到表单,但是表单中的某些数据并未得到应有的更新。

该表单位于祖父母视图(enroll-form),中间子视图(sub-enroll-form)和孙子视图(sub-enroll-form-row)中,其中显示{{1 }}。在inputs中单击按钮时,孙子表单为用户提供了新的输入,以便用户添加新的国家代码,区号,电话号码,分机号等,并且该部分正在顺利进行。

单击按钮后,代码enroll-form.component.html将数据添加到基础对象addRow()中,该对象填充了表单(通过member上的*ngFor迭代),然后是Angular剩下的了吗。 。 。几乎。

memberaddRow()

enroll-form.component.ts

addRow(targetKey: string) { let idArray = []; let newRow = new PhoneRowData().phone; this.member[targetKey].rowData.forEach((v)=>idArray.push(v.id.ID)); let maxId = idArray.reduce(function(a,b) {return Math.max(a,b);}); newRow.id.ID = maxId + 1; this.member[targetKey].rowData.push(newRow); } (这是显示最终包含在sub-enroll-form-row.component.ts中的数据的孙组件/视图。

member

问题在于,将新的数据行添加到export class SubEnrollFormRowComponent implements OnInit, OnChanges { @Input() inputFields; //THE DATA IN `inputFields` IS DERIVED FROM `member` @Input() form: FormGroup; formControls={}; objKeys: Array<any> = []; subKeys: Array<any> = []; ngOnChanges() { this.objKeys = Object.keys(this.inputFields); this.objKeys.forEach((key) => { this.subKeys = Object.keys(this.inputFields[key]); this.subKeys.forEach((subkey) => { let validators = []; this.templateVal.handleValidation(subkey, validators); this.formControls[subkey] = new FormControl(this.inputFields[key][subkey], validators); this.form.addControl(subkey, this.formControls[subkey]); }) }) . . . } (在祖父母中)之后,member的相应行被正确放置(在Granchild视图中),但是其中一些inputs中的值不是我所期望的。如inputs所示,新输入的addRow()属性应设置为现有ID的最大值+ 1(以自动递增ID)。而是将所有新的ID输入设置为值“ 1”,这是类构造函数给出的值。即使我修改了ID中的初始值,并验证了调试器/控制台中的修改,但是在模板视图中,这些修改不会被保留。

我需要执行某种“保存更改”操作吗?还是我试图同步进行更改的事实吗?否则,有什么想法为什么即使基础数据集似乎已经被更新,输入值也没有被更新?谢谢!

0 个答案:

没有答案