Form Array中的Angular 2 patchValue

时间:2017-01-29 16:01:57

标签: angular

我有一个带有表单数组的表单:

    this.myForm = this._fb.group({
        id: [this.model.id],
        customer_id: [this.model.customer_id],
        orderlines: this._fb.array([])
    });

表单数组:

    return this._fb.group({
        id: [orderline.id],
        order_id: [orderline.order_id],
        factor: [orderline.factor],
    })

现在我想在方法setFactor(i)中更改factor字段的值。 i是表单数组顺序的索引。

setFactor(i) {
    this.myForm['orderlines'[i]].patchValue({ factor: 99 }) <--- no error but no change in form
    this.myForm.patchValue({ orderlines[i].factor: 99 }) <-- error

}

如何使用patchValue更改表单数组中的值?

修改

这将给我我想改变的价值:

console.log(this.myForm['controls']['orderlines']['controls'][i]['controls']['factor'].value);

2 个答案:

答案 0 :(得分:4)

以下工作:

NoClassDefFoundError: org/springframework/security/web/session/SessionInformationExpiredStrategy

答案 1 :(得分:0)

首先创建一个返回表单数组的方法

  GetOrderLinesArray() {
    return this.myForm.get('orderLines') as FormArray;
  }

然后修补该值:

setFactor(index) {
this.GetOrderLinesArray().controls[index].get('factor').patchValue(99);
}