我有一個輸入欄位,我需要在其中填充來自 API 的陣列資料,我使用 FormControl 填充資料但無法實作相同。我在控制臺上得到回應但無法填充它用戶界面。如果有人可以指導我,下面是我的代碼,因為我在 Angular 中花了整整 2 天時間。任何人都可以在這里幫助我。
HTML 代碼:
<div formArrayName="insurance" *ngFor="let insuranceCompany of insurance.controls; let i = index">
<div [formGroupName] = "i">
<ion-card *ngFor="let eq of equityFunds;let i=index;">
<ion-item lines="full" color="inputgrey">
<ion-input formControlName="insuranceCompany"></ion-input>
<span class="percentSign">%</span>
</ion-item>
</ion-card>
</div>
</div>
TS 代碼:
ngOnInit() {
this.suitablityForm = this.formBuilder.group({
insurance: this.formBuilder.array([
this.getInsurance()
])
});
loadData();
}
private getInsurance(){
return this.formBuilder.group({
insuranceCompany:['']
});
}
get insurance():FormArray{
return this.suitablityForm.get('insurance') as FormArray;
}
this.sisService.getFundAllocationDetails(dataToSendApi).subscribe((response: any) => {
var apiResponse = response.data;
for(var i=0; i < apiResponse.length; i ){
var newRes= apiResponse[i].percentage;
this.suitablityForm.patchValue({
insuranceCompany: newRes
})
)}
uj5u.com熱心網友回復:
您可以patchValue直接使用表單控制元件來執行此操作。
您當前的設定似乎太復雜了,除非表單中有許多其他值未在此處顯示。
但是,當您從 API 獲得回應時,您可以簡單地獲取回應式表單元素并設定值。
this.suitablityForm.insurance.insuranceCompany.patchValue('VAL_YOU_WANT');
uj5u.com熱心網友回復:
首先,我建議您重新考慮前面評論中提到的方法,您似乎使它變得不必要地復雜。另外,我會考慮重命名你的變數,這很令人困惑,以后維護起來會很痛苦。
要回答您的問題并在螢屏上列印“離子輸入”,請對 HTML 進行以下更改。
您不能將 <div [formGroupName] = "i"> i 分配給 formGroup,因為它不是 formGroup 型別,因為它已分配給索引。
解決方案是分配 <div [formGroupName] = "insuranceCompany[0]"> 以便分配一個表單組。為了清楚起見,我再次建議您重命名變數“insuranceCompany”,因為還有一個名為“insuranceCompany”的控制元件。
希望我說清楚了,希望對您有所幫助。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/416733.html
標籤:
上一篇:如何使用HTMLJavascript使div框每1000毫秒隨機更改一次顏色?
下一篇:具有不同變數的重用函式
