我的組件:
onSave() {
console.log(this.receivedPropertyForm.value)
this.micro.postButton(this.receivedPropertyForm.value.ItemRec[0]) .subscribe({ next:(res)=>{console.log(res) } })
}
這是我的服務,我將物件傳遞給后端到 SQL:
postButton(data) {
return this.http.post(environment.baseURL 'PropertyTransactionDetails/Add', data)
}
我在后端的控制器:
[HttpPost("Add")]
public async Task<ActionResult<PropertyTransactionDetailsDTO>> Add([FromBody]
PropertyTransactionDetailsDTO item)
{
if (item == null)
item = new PropertyTransactionDetailsDTO();
return Ok(await _PropertyTransactionDetailsRepository.Insert(item));
}
在這里,我嘗試發布 2 個物件:
2 物件陣列
我的資料庫
我的問題是如何在資料庫中顯示另一行或更多行?
uj5u.com熱心網友回復:
從外觀上看,您似乎只發布了陣列中的第一項this.receivedPropertyForm.value.ItemRec[0]。
根據您計劃如何在后端設定業務邏輯,我會說您在這里有兩個選擇。
簡短而快速的解決方法是遍歷所有要發布的 obj,一次發布一個(這顯然意味著來自前端的更多請求,這并不好),但它會起作用。這可以通過 RXJS 運算子來增強,以處理 observables 并更優雅地決議它們——也許我們可以避免.subscribe()使用| async管道呼叫?但如果你不做后者,至少也要確保這樣做.unsubscribe()!
onSave() {
console.log(this.receivedPropertyForm.value)
for (const item of this.receivedPropertyForm.value?.ItemRec) {
this.micro.postButton(item).subscribe((response) => {
console.log(response)
});
}
}
更正確的方法可能是發布整個專案陣列,在后端迭代它們,最后回傳專案串列。對于該實施,您需要修改所有部分并考慮如何處理此問題。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/485602.html
