javascript - 如何在 Angular 2 中填充表单数组?

标签 javascript forms angular

假设我们有一个可以包含值数组的表单。
对于这种情况,Angular 为我们提供了 FormArray 类(class)。

this.form = new FormGroup({
  addresses: new FormArray([]),
})

我们还可以使用 NgForm#setValue .这可以用于使用从服务器检索到的一些数据来填充表单。

当我从服务器接收到新数据时,我想用该数据填充表单。例如,我的数据如下所示:
const data = {
  addresses: [
    { country: 'USA', city: 'New York' },
    { country: 'Germany', city: 'Berlin' },
  ]
}

现在是时候用这些数据填充表单了。
当我尝试简单地调用 this.form.setValue(data)我收到一个错误:
Cannot set property stack of [object Object] which has only a getter

如何用数据填充表单,但有以下要求:
  • 我知道addresses的形状属性(property)。
  • 我不知道 data.addresses 中的地址数量大批。
  • 最佳答案

    像下面这样尝试

    this.form.setControl('addresses', this.formBuilder.array(this.data.addresses || []));
    

    关于javascript - 如何在 Angular 2 中填充表单数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39272616/

    相关文章:

    css - 使用 sass 而不是 css angular 4 .net core 2 spa 模板

    angular - Infragistics:如何使用 id 显示多个 ignite Snackbar

    javascript - 由于异步函数,函数过早返回值

    javascript - 如何在 ReactJS 页面中包含 JS 脚本?

    javascript - 控制台错误 : [function] is not defined, 虽然它是

    javascript - 从一个表单字段获取条目并在数据库中搜索其相应数据并自动填充表单中的其他字段

    javascript - 在同一页面上集成和通信多个 Angular 应用程序 (SPA)

    javascript - Google Analytics 中的 iOS 电话超链接 javascript 跟踪

    php - 将表单数据从表单传输到外部表单

    javascript - 当选中某个单选按钮时,如何使复选框组处于事件或不活动状态?