试图在我的 Angular 应用程序的帖子组件中删除来自 jsonplaceholder/post 网站的帖子。使用服务从 Json 占位符调用删除 HTTP 时,我收到以下错误。
src/app/components/post/post.component.ts(5,27) 中的错误:错误 TS2307:找不到模块“async_hooks”。src/app/components/post/post.component.ts(55,35):错误 TS2345:“数字”类型的参数不可分配给“数字”类型的参数 | 邮政'。类型“编号”不可分配给类型“邮政”。“数字”类型中缺少属性“id”。
这是发生删除的组件中的 remove post 方法:
removePost(post: Post) {
if (confirm('Are you Sure?')) {
this.postService.removePost(post.id).subscribe(() => { //calling the service using the dependency injection and subscribing it to the function in the service
this.posts.forEach((cur, index) => {
if (post.id === cur.id ) {
this.posts.splice(index, 1);
}
});
});
}
}
这是服务中的 removePost 方法:
removePost(post: Post | number): Observable<Post> {
const id = typeof post === 'number' ? post : post.id;
const url = `${this.postsUrl}/${id}`;
return this.http.delete<Post>(url, httpOptions);
}
HTML 文件
<div class="card mb-2" *ngFor= 'let msg of posts'>
<div class="card-body">
<h3>{{msg.title}}</h3>
{{msg.body}}
<hr>
<button (click)= 'removePost(msg)' class="btn btn-danger">
<i class="fa fa-remove light"></i>
</button>
<button (click)='editPost(msg)' class="btn btn-light">
<i class="fa fa-pencil light"></i>
</button>
</div>
</div>