【问题标题】:Angular : Can't update values in nested formGroup and formArrayAngular:无法更新嵌套 formGroup 和 formArray 中的值
【发布时间】:2018-08-14 01:31:02
【问题描述】:

我有一个名为 'selsectedForm' 的 formGroup 包含嵌套数组,第一级是 'fields' formArray 包括第二级是 'values' formArray。

我看到了很多关于嵌套表单数组的示例,并尝试使用它们,但每次都失败了。

我无法在这些嵌套数组中使用 setValue() 或 patchValue() 方法来更新 formGroup 值。

我需要这样做以查看表单是否被触摸和有效,并更新提交的值。

这里是代码:https://stackblitz.com/edit/angular-httakx?embed=1&file=app/app.component.ts

【问题讨论】:

    标签: angular angular-reactive-forms formarray


    【解决方案1】:

    您可以在应用程序中设置调试器并打印表单,以便检查 value 属性的字段以设置所需的确切内容。

    对于 addField() 函数:

    last.patchValue({values:['myValue']})

    对于 addValue(i) 函数:

    var storedValue = values.getRawValue(); 存储值[storedValue.length - 1] = '值' + i; values.patchValue(storedValue)

    对于 removeValue(i,j):

    var storedValue = values.getRawValue(); 存储值[storedValue.length - 1] = ''; values.patchValue(storedValue)

    而且你在移除字段时不需要任何东西来移除值,只需移除表单控件即可。

    希望对你有帮助

    【讨论】:

    • 我修改了代码并添加了“在控制台中打印表单”按钮,尝试添加新字段并填写值,然后单击此按钮,您将在控制台中看到新字段为不在表单值中
    • 另外注意,如果你添加了新的字段而不填写第一个字段,那么表单仍然不会被触及。
    猜你喜欢
    • 2020-07-20
    • 2019-04-21
    • 2017-06-11
    • 2020-09-29
    • 2019-08-03
    • 1970-01-01
    • 2021-07-07
    • 2021-04-03
    • 1970-01-01
    相关资源
    最近更新 更多