我已經創建了一個Angular應用程序,它允許用戶對特定媒體文件(如視頻)進行評論。發佈評論時,會發起一個http POST調用,將評論存儲在數據庫中。訂閱API調用:Angular2
加載組件時,ngOnInit通過發起http GET調用從數據庫加載所有註釋。但是,當發佈新評論時,如果沒有刷新頁面,評論不會更新。他們是否可以在評論發佈時更新評論列表而無需刷新頁面?
我已經創建了一個Angular應用程序,它允許用戶對特定媒體文件(如視頻)進行評論。發佈評論時,會發起一個http POST調用,將評論存儲在數據庫中。訂閱API調用:Angular2
加載組件時,ngOnInit通過發起http GET調用從數據庫加載所有註釋。但是,當發佈新評論時,如果沒有刷新頁面,評論不會更新。他們是否可以在評論發佈時更新評論列表而無需刷新頁面?
爲了簡單起見,讓我們假設你有一個組件ViewComponent
,顯示的評論列表,以及評論表單添加新的評論。 ViewComponent
具有public comments: Comment[]
這樣的註釋的本地狀態,該註釋由您的ngOnInit()
中的GET API調用初始化。
我假設你有一個服務,如CommentsService
,使api調用。 當您添加評論時,將調用函數addComment(comment)
,該函數處理POST請求。當POST成功時,評論將添加到您的評論數組中。
如果服務返回可觀察到的(這裏沒有退訂):
addComment(comment: Comment): void {
this.commentService.add(comment)
.subscribe(comment => {
this.comments.push(comment);
});
}
如果服務返回一個承諾:
addComment(comment: Comment): void {
this.commentService.add(comment)
.then(comment => {
this.comments.push(comment);
});
}
subscribe
您http.post
當success
發佈後添加到您的帖子陣列this.posts.push(newPost)