我创建了一个Angular应用程序,允许用户对特定媒体文件(如视频)发表评论。发布评论时,会发出一个http POST调用,将注释存储在数据库中。
在加载组件时,ngOnInit通过进行http GET调用来加载数据库中的所有注释。但是,在发布新评论时,评论不会在不刷新页面的情况下得到更新。是否可以在发布评论时更新评论列表而不刷新页面?
答案 0 :(得分:2)
subscribe
您的http.post
以及success
张贴时将帖子添加到您的帖子this.posts.push(newPost)
答案 1 :(得分:0)
为简单起见,我们假设您有一个组件ViewComponent
,它会显示评论列表以及添加新评论的评论表单。 ViewComponent
具有public comments: Comment[]
等评论的本地状态,该状态由ngOnInit()
中的GET api调用初始化。
我假设你有一个像CommentsService
这样的服务来进行api调用。
添加注释时,将调用函数addComment(comment)
,该函数处理POST请求。 POST成功后,评论将添加到您的评论数组中。
如果服务返回Observable(此处没有取消订阅):
addComment(comment: Comment): void {
this.commentService.add(comment)
.subscribe(comment => {
this.comments.push(comment);
});
}
如果服务返回Promise:
addComment(comment: Comment): void {
this.commentService.add(comment)
.then(comment => {
this.comments.push(comment);
});
}