【问题标题】:ngFor not updating when pushing new datangFor在推送新数据时不更新
【发布时间】:2017-06-04 22:15:28
【问题描述】:

我有一组反应式表单,我将它们设置为反应式表单数组:

typesForms: FormGroup[] = [];

我在我的 html 中循环:

<form *ngFor="let type of typesForms; let i = index" [formGroup]="typesForms[i]" class="row">

但是,当我推送新表单时,HTML 不会更新。

this.typesForms.push(this.formBuilder.group({
    type: { value: data['type'], disabled: true }
}));

我已经注销了结果数据,它显示了新的表单对象,但前端没有。我认为这与反应形式有关,但我不确定我是否在搞砸其他事情。

【问题讨论】:

  • 您的 ngFor 迭代类型,而不是 typesForms。所以向 typesForms 添加一个元素不会改变任何东西。
  • 糟糕,这只是一个错字。我正在测试一些东西,不小心复制了我的测试代码。解决问题。

标签: angular ngfor angular-reactive-forms


【解决方案1】:

你试过&lt;form *ngFor="let type of typesForm" [formGroup]="type" class="row"&gt;吗?


更新:

如果您有多个表单,您可以使用 Angular 内置的 FormArray 数据结构。它确实简化了对一组表单组的操作 - 允许您轻松跟踪更改并验证链接的 FormGroupFormControl

Punkr example

注意:感谢ReactiveFormsModule 下的事物结构,您可以根据需要编写FormArrays、FormGroups 和FormControls:

  • 您可以将FormArray 作为FormGroup 的字段a
  • FormArray 可以包含FormArrays、FormGroups 和FormControls

【讨论】:

  • 我没有,因为我需要索引来与表单交互,除非有另一种我不知道的方法。我会尝试看看这是否有帮助,但我需要查看如何与各个表单进行交互。
  • 我在plunkr 中做了一个示例,展示了如何使用Form Array 实例化和控制多个表单组
猜你喜欢
  • 2023-04-01
  • 1970-01-01
  • 1970-01-01
  • 2016-10-10
  • 1970-01-01
  • 2011-10-26
  • 1970-01-01
  • 2014-06-08
  • 1970-01-01
相关资源
最近更新 更多