2017-06-14 198 views
2

我正在模型驅動窗體上工作,我無法得到它添加項目與使用ngFor顯示列表。當我嘗試迭代列表時,我目前收到錯誤。我嘗試了所有可用的解決方案。無法找到與路徑控制:angular2

錯誤

無法找到路徑控制: '類別 - > 0'

TS文件

private categories : any= [{name: 'Strict',selected : false}, 
            {name: 'Moderate',selected : true}, 
            {name: 'Flexible',selected : true}]; 

let allCategories: FormArray = new FormArray([]); 
      for (let i = 0; i < this.categories.length; i++) { 
      let fg = new FormGroup({}); 
      fg.addControl(this.categories[i].name, new FormControl(this.categories[i].selected)) 
      allCategories.push(fg) 
      } 

形式初始化

類:allCategories,

HTML部分

<div formArrayName="categories"> 
      <div *ngFor="let category of categories; let i=index"> 
      <span formGroupName="{{i}}">    
      <label> 
      <input type="checkbox" formControlName="{{category.name}}"/> 
      {{category.name}} 
      </label>     
      </span> 
      </div> 
     </div> 
+1

請說明您的具體問題或添加更多的細節,以確切地突出你所需要的。 – 2017-06-14 09:17:12

+0

有幾個問題,如果您只有3個複選框,爲什麼需要遍歷表單? 'allCategories'用於什麼? 「FormArray」類是什麼樣的,爲什麼不使用「FormControls」數組? –

+1

@jadoon,我正在嘗試爲我的應用程序實現反應形式..在提交上,我得到的json格式n被保存在mongo中..現在我想用json構建表單。我在哪裏掙扎着迭代表單數組.. patchValue只能用簡單的json工作。我想要像下面格式的json數組的補丁格式 –

回答

1

@Jadoon,我想,@DineshArun意味着他希望使用被動方法列出所有類別,併爲每個類別使用FormArray和FormGroups。 問題是,角度通常默認分配數組索引作爲組名稱0,1 ... 但在@ DineshArun的情況下,不起作用。在我的情況下,它並沒有,但我找到了解決方案。

首先,看看this的問題,它的標記答案。以這種方式重寫formArray的填充,然後將您在patch()方法中指出的控件的原始名稱分配給formControlName

+0

你是對的 –