Angular 找不到路径为&x27;市场->;1->;市场';

Angular 找不到路径为&x27;市场->;1->;市场';,angular,angular6,Angular,Angular6,我有一些市场在阵列中。我想在文本框中显示,如果我想编辑和添加新的文本框,我必须这样做。所以我喜欢这个 <div class="field_group" formArrayName="marketplace" > <div class="field_group_input last input-icon-plus" *ngFor="let markets of companyDetails.marketplace;let i = index" [formGroupNam

我有一些市场在阵列中。我想在文本框中显示,如果我想编辑和添加新的文本框,我必须这样做。所以我喜欢这个

 <div class="field_group" formArrayName="marketplace" >
    <div class="field_group_input last input-icon-plus" *ngFor="let markets of companyDetails.marketplace;let i = index" [formGroupName]="i">                          
  <input type="text" placeholder="Marketplace (eg: Euronext)" formControlName="marketplace" value="{{markets.marketplaceName}}">
   </div>
   </div> 

有人能告诉我我犯了什么错误吗?在我的项目中,我又犯了一个同样的错误。请帮助我。谢谢

您需要将数组中的值实际放入formarray,然后在模板中迭代。我还将
formData
重命名为
formArr
,因为这样更有意义。同样在模板中,当您要为formcontrol设置值时,不要使用
[value]
。Angular不关心
[value]
,只关心作为值放入formcontrol中的内容

因此,当您将数据放入数组(异步或同步)时,请迭代该数组并创建formgroups并推送到formarray。在这里,我在名称中添加了
Validators.required
,因为我假设您希望它是必需的:

this.companyDetails.marketPlace.forEach((x)=>{
这个.形式.推(这个._fb.group({
marketplaceName:[x.marketplaceName,[Validators.required]],
idMarketplace:[x.idMarketplace]
}))
})
// ....
get-formArr(){返回this.companyDescForm.get('marketplace');}
然后在模板中迭代formarray并通过
formControlName=“marketplaceName”
显示名称:



什么是
公司详情.市场
?您不应该重复您的formarray吗?marketplace:[{marketplaceName:“ARR”,idMarketplace:19},{marketplaceName:“DFG”,IDMarketplaceName:20}]0:{marketplaceName:“ARR”,IDMarketplaceName:19}IDMarketplaceName:“ARR”1:{marketplaceName:“DFG”,IDMarketplaceName:20}IDMarketplaceName:“DFG”我有这种数组,必须在文本框中显示这个市场名称值,我有数据库中的市场列表,当用户加载时,我需要显示已经可用的值,他们可以更改文本并更新,我必须以id、marketplacename的形式传入市场数组。,我怎样才能做到这一点呢?那么你应该迭代这个数组,创建formgroups,并将它们粘贴到formarray中。你不能将这些值中的任何一个放在formarray中。
companyDescFormInit() {
    this.companyDescForm = this._fb.group({
      marketplace : this._fb.array( [this.createMrktFields(true)] )
    })
  }
  get formData() { return <FormArray>this.companyDescForm.get('marketplace'); }

  createMrktFields(req:boolean = false): FormGroup {
    return this._fb.group({
      marketplace: ['']
    });
  }
 Cannot find control with path: 'marketplace -> 0 -> marketplace'
    at _throwError (forms.js:1775)

Cannot find control with path: 'marketplace -> 1'
    at _throwError (forms.js:1775) 

Cannot find control with path: 'marketplace -> 1 -> marketplace'
    at _throwError (forms.js:1775)