Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
访问FormArray中的对象属性并更新Angular 4中的值_Angular_Typescript_Reactive Forms_Formarray - Fatal编程技术网

访问FormArray中的对象属性并更新Angular 4中的值

访问FormArray中的对象属性并更新Angular 4中的值,angular,typescript,reactive-forms,formarray,Angular,Typescript,Reactive Forms,Formarray,我想从表单中访问对象属性和绑定值。到目前为止,我尝试了不同的选择,但没有成功。到目前为止,我已经将代码简化如下: 表格组: this.form = this.fb.group({ ingredients: new FormArray([this.fb.group({name: 'Pasta', price: ''})]) }) 查看代码: <div formArrayName="ingredients"> <ion-item *ngFor="let ingredien

我想从表单中访问对象属性和绑定值。到目前为止,我尝试了不同的选择,但没有成功。到目前为止,我已经将代码简化如下:

表格组:

this.form = this.fb.group({
  ingredients: new FormArray([this.fb.group({name: 'Pasta', price: ''})])
})
查看代码:

<div formArrayName="ingredients">
  <ion-item *ngFor="let ingredient of form['controls'].ingredients['controls']; let i = index" padding-bottom>
    <div [formGroupName]="i">
        <ion-input formControlName="price" type="number"></ion-input>
    </div>
  </ion-item>
</div>

出于这个问题的目的,上面的代码被简化了,场景是不同的,但最后我想更新对象内部的价格值。在我做研究的过程中,我看到了很多这样做的方法,但似乎没有什么对我有用。

试试这个:-

  <form [formGroup]="form">
  <div formArrayName="ingredients">
    <div *ngFor="let ingredient of form['controls'].ingredients['controls']; let i = index" [formGroupName]="i">
    <input formControlName="price" type="number"/>
    </div>
    </div>
  </form>
请检查此plunker以获取解决方案。

这段代码有什么问题?`我花了一整天的时间处理这个问题。这很有魅力。谢谢
form: FormGroup;

  constructor(builder: FormBuilder) {
    this.form = builder.group({
      ingredients: new FormArray([
        builder.group({
            name: 'Pasta',
            price: '',
        })
      ]);
    })
  }