0 -> no'”-6ren"> 0 -> no'”-当我们尝试使用 formGroup 时,我们尝试了一些错误。我需要一些关于表单组的解释。我想用数据创建一个表单组。数据需要逐行显示。我们使用 angular 8当我运行它时,出现了这个错误: No v-6ren">
gpt4 book ai didi

angular - 为什么我得到这些错误 "No value accessor for form control with path: ' rowDetails -> 0 -> no'”

转载 作者:行者123 更新时间:2023-12-04 01:35:46 26 4
gpt4 key购买 nike

当我们尝试使用 formGroup 时,我们尝试了一些错误。我需要一些关于表单组的解释。我想用数据创建一个表单组。数据需要逐行显示。我们使用 angular 8当我运行它时,出现了这个错误:

No value accessor for form control with path: 'rowDetails -> 0 -> no'

我有这个组件的构造函数:

 constructor(
public fb: FormBuilder
) {
this.summaryForm = this.fb.group({
rowDetails: this.fb.array([])
})
}

我有这个组件 Controller :

ngOnInit() {
this.productList = (this.selectedReceiptBatch.incomeSummary as SaleSummary).sales;
this.summaryForm = this.fb.group({
rowDetails: this.fb.array(
this.productList.map(x=> this.fb.group({
'no': x.product.code,
'desc': x.product.productClass,
'numberx': [x.number.x],
'numbery': x.number.y,
'amountz': x.number.z,
'reference': [x.reference]
})
))
});
console.log(this.summaryForm);
this.formControlAvailable = true;
}

HTML :


<div *ngIf="formControlAvailable">

<div>

<div [formGroup]="summaryForm">
<div formArrayName="rowDetails">
<div *ngFor="let row of summaryForm.controls.rowDetails.controls; let index = index">
<div [formGroupName]="index">
<div>
<span formControlName="no" >{{row.value.no}}</span>
</div>
<div>
<span *ngIf="row?.product?.code" formControlName="desc" >
{{row.value.desc}}
</span>
<div *ngIf="!row?.product?.code" ngbDropdown class="d-inline-block">
<mat-form-field>
<mat-label>Select an option</mat-label>
<mat-select [(value)]="row.product.code" formControlName="desc" >
<mat-option *ngFor="let product of cashableProducts" [value]="product.code">
{{product.code}}
</mat-option>
</mat-select>
</mat-form-field>
</div>

</div>
<div >
<input type="number" [value]="row.amount.net"
(change)="row.amount.net = parseNumber($event.target.value);calculate()"
formControlName='numberx' />
</div>
<div >
<span formControlName='numbery' >{{ row.value.numbery }}$</span>
</div>
<div >
<span formControlName='numberz' >{{ row.value.numberz }}$</span>
</div>
<div >
<input formControlName='reference' type="text" class="form-control" minlength="0" [(ngModel)]="row.reference" />
</div>
</div>
</div>
</div>

</div>
</div>
</div>

最佳答案

您只能将 formControlName 指令放在输入元素、选择、文本区域或实现接口(interface)值访问器接口(interface)的组件上。

改变这个

<span formControlName="no" >{{row.value.no}}</span>

像这样输入元素

<input type="text" formControlName="no" >

如果你只想显示no

{{row.value?.no}}

关于angular - 为什么我得到这些错误 "No value accessor for form control with path: ' rowDetails -> 0 -> no'”,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59653671/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com