我有一个按钮可以在点击时删除一个项目。我想在操作完成后显示一个简单的alert('Item deleted')
警报。但是我似乎无法使其发挥作用。请注意,该项目将被删除。
这是我试过的:
我的组件中的deleteItem 功能
deleteItem(id: number) {
this.eventsService
.deleteEventById(id)
.subscribe(
res => console.log(res),
err => console.log(err),
() => alert('Item deleted')
);
}
没有任何内容打印到控制台,也没有显示警告。
我的服务中的deleteEventById 功能
deleteEventById(id: number) {
return this.http
.delete(`/api/events/${id}`, this.headerForPrivateCalls)
.pipe(
catchError(this.handleError),
);
}
api route (如果重要)
router.delete('/events/:id', authCheck, (req, res) => {
connection((client) => {
client.db('gordes').collection('events')
.deleteOne({id: +req.params.id})
.then(() => {
res.status(204);
})
.catch((err) => {
sendError(err, res);
});
})
});
答案 0 :(得分:1)
您的deleteEventById服务不会向Observable返回任何内容。 您需要添加.map()
deleteEventById(id: number) {
return (this.http
.delete(`/api/events/${id}`, this.headerForPrivateCalls)
.map(response => response.json())
.pipe(
catchError(this.handleError),
);
)
}
修改强>
问题似乎在节点后端:
你不会通过
返回任何内容res.status(204);
使用:
res.status(204).send();