2017-02-01 65 views
1

訪問控制的值的形式陣列AM經由表單生成器與REST API結果在angular2

的陣列設置我的形式這是我的表單生成代碼

this._inspectionService.getChecklists(this.truckParam) 
    .subscribe(
    res=> { 
     this.checklists = res; 
     let inspectionform: FormGroup; 
     let checkinputs: FormArray = new FormArray([]); 
     for (let i = 0; i < this.checklists.length; i++) { 
     checkinputs.push(
      new FormGroup({ 
      description:new FormControl(this.checklists[i].item), 
      input: new FormControl(''), 
      yesradio: new FormControl(''), 
      noradio: new FormControl(''), 
      }) 
     ) 
     } 

     this.inspectionform = this._formBuilder.group({ 
     inputfileds: this._formBuilder.array(checkinputs.controls) 
     }) 

    }, 
); 

現在在我的形式

<form [formGroup]="inspectionform"> 

<ion-card *ngFor='let checklists of inspectionform.controls["inputfileds"]["controls"] 
;let i=index'> 

//at this stage i can access 
{{checklists.controls["description"].value}} //it retuns a value 

//NOW AM trying to connect the form control inputs via 

    <ion-input type="text" formControlName='checklists.controls["noradio"]'> 
IVE ALSO TRIED 
    <ion-input type="text" formControlName='checklists.controls.noradio'> 

而返回的錯誤是

Cannot find control with name: 'checklists.controls["noradio"]' 

我要去哪裏錯了

+0

是否在代碼中輸入了拼寫錯誤代碼或僅在這裏? 無論如何,請嘗試formControlControlName ='{{checklists.controls [「noradio」]。value}}'... – Arwin

+0

是不是inspectionform.controls [''] ... – wesside

+0

不在表單構建器上拼錯它我實際上把它作爲輸入文件 –

回答

1

沒有與「checklists.controls [」 noradio「]」的名稱的表單控件,它將與[formControl]="checklists.controls['noradio']"因爲那直接連接到控制對象綁定。然而。 [formControlName]="'noradio'"也可能工作,但FormArray訪問和控制不是我的強項。

兩者之間的語法不同,它保證了further reading

+0

什麼是單選按鈕我應該使用綁定自綁定formControl導致兩者都被檢查 –

+0

每個HTML單選按鈕按'名稱「,然後通過它們的」值「區分: http://plnkr.co/edit/PnEheiI0NB6BYq229CLR?p=preview – silentsod

+0

@GEOFFREYMWANGI以引起您的注意,因爲我在第一條評論中忘記了它。 – silentsod