【问题标题】:Is it possible to patch value for FormArray that is in FormGroup.? [duplicate]是否可以修补 FormGroup 中的 FormArray 的值? [复制]
【发布时间】:2020-07-31 14:15:42
【问题描述】:

我是反应形式的新手。我不确定是否可以在不使用 get 方法的情况下更新 FormArray。如果我使用 get 方法,我将执行类似 this.editForm.get('ingredients') 的操作。现在,我想使用 patchValue 来更新 FormArray。 这是我的 formGroup 代码。

    this.editForm = new FormGroup({
      name: new FormControl(recip.name,[Validators.required]),
      imageUrl: new FormControl(recip.imagePath, [Validators.required]),
      description: new FormControl(recip.description ,[Validators.required]),
      ingredients: new FormArray(recip.ingredients.map((ing) => new 
                     FormGroup({name: new FormControl(ing.name), amount: new FormControl(ing.amount)})))});

有没有办法可以修补成分的值(例如,像 this.editForm.patchValue({ingredients: something}) 这样的一些代码

【问题讨论】:

    标签: javascript angular angular-reactive-forms


    【解决方案1】:

    是的,但您需要考虑“某物”必须是一个数组。如果数组中的元素多于 FormArray 中的元素,请删除 formArray 中的元素

    例如

    this.editForm.pacthValues(
        {ingredients:[
             {name:"name1",
              amount:100},
             {name:"name2",
              amount:200},
         ]
    })
    

    仅更新 FormArray 中的前两个元素。如果 FormArray 的元素多于两个,则删除其余元素,如果 FormArray 的元素较少,则 pathValue 不添加元素

    【讨论】:

      猜你喜欢
      • 2020-01-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-04
      • 1970-01-01
      • 2018-09-03
      • 2021-03-12
      • 1970-01-01
      相关资源
      最近更新 更多