angular - 从 Angular 中的表中删除数据行(Spring-Rest API,MongoDB)
问题描述
我正在为库中的成员开发一个 crud 应用程序,我想执行删除操作,但它不起作用。请帮我解决这个问题。
休息 API
@DeleteMapping("/members")
public Member delete(@RequestBody Member member){
repository.delete(member);
return member;
}
至于 REST Api 它运行良好,我使用 Postman 进行了检查。
Http服务.ts
export class Member{
constructor(
public id:string,
public name:string,
public fBook:Book,
public contact:string,
){
}
}
export class Book{
constructor(
public author:string,
public name:string,
public year:string
){
}
}
export class HttpClientService {
constructor(
private httpClient: HttpClient
) { }
private url= 'http://localhost:8080/members';
deltMem(member: Member){
return this.httpClient.delete<Member>(this.url);
}
}
deltacomp.ts
export class DeleteComponent implements OnInit {
members: Member[];
constructor(
private httpClientService: HttpClientService
) { }
deleteMember(members:Member){
this.httpClientService.deltMem(members).subscribe(
res => {
console.log(res);
}
)
}}
解决方案
body
为 RESTDelete
方法发送内容并不是一种常见的良好做法。即使它不是被禁止的。我不建议你使用它。 您可以阅读这篇文章了解更多详情。
事实上,Angular
不支持它作为常见和简单的方式。您可以,但您需要额外的代码,请参阅这篇文章了解更多详细信息。
如果您正在设计后端架构(我的意思是您可以自由调整和设计它),在这种情况下,我强烈建议您使用 anid
来标识您要删除的资源:
DELETE http://your-api-service/members/15
它更清晰、简单、易于阅读。
所以你的Spring Boot
代码应该是:
@DeleteMapping("/members/{memberId}")
public Member delete(@PathVariable("memberId") Integer memberId){
Member memberToDelete = repository.findById(memberId);
// ... delete member
return memberToDelete;
}
和你的Angular code
:
deleteMember(member: Member){
return this.httpClient.delete<Member>(`${this.url}/${member.id}`);
}
推荐阅读
- android - 您无权为您的应用使用内部应用共享
- c# - 停止动画循环回到 Unity3D 中的初始位置?
- asp.net - Serliog 接收器:从 json 配置读取不起作用
- angular - 回调中未定义注入器服务
- android - 如何使用自己的自定义更改 DatePickerDialog 标题颜色背景?[未解决]
- django - 如何在几天内自行更新字段?
- multithreading - NFS 文件上的随机最后修改时间戳
- smartcard - 直接使用 scdaemon Assuan 协议检查卡 PIN
- android - Kotlin 安全调用 (?.) 实现
- arrays - 按钮键值到数组