javascript - Angular 6 : Real time data

标签 javascript angular html

我有一个应用程序,用户可以在其中添加评论,并且会显示评论,我的问题是刷新页面之前不会显示评论。

我希望在用户单击“输入”或“提交”按钮后显示评论

这是我到目前为止所拥有的:

  1. 获取数据service.ts

    this.activeRouter.params.subscribe((params) => {
      let id = params['id'];
      this.moviesService.getComments(id)
        .then(comments => {
          console.log(comments);
          this.comments = comments;
        });
    });
    

2.然后显示到前端:html

   <div *ngFor="let comment of comments" class="col-md-7">
          <ul class="list-group">
            <li class="list-group-item">Author: {{comment.author}}</li>
            <li class="list-group-item">Comments: {{comment.description}}</li>
          </ul>
          <br>
        </div>

不幸的是,当我的服务器更新 JSON 时,html 根本不会更新,直到我刷新页面,然后我才能看到添加的评论错误

为了实现我想要的目标,我的代码中缺少什么?虽然是新手

最佳答案

您的代码很好,但不幸的是 Promise 只能解析为一个值。

但是,可观察量可以为您提供实时数据流!

使 movieService.getComments() 方法返回一个返回评论的可观察对象。

它应该看起来像这样(假设您正在使用 Angular HttpClient 来获取评论):

// movieService.service.ts

import { HttpClient } from '@angular/common/http'

...

constructor(
  private http: HttpClient
)

getComments() {
  return this.http.get<Comments>(url)
}

...

你可以像这样使用可观察的:

// comment.component.ts

...

comments: Observable<Comments>

...

ngOnInit() {
  this.comments = this.movieService.getComments()
}

...

最后在模板中:

// comments.component.html

 <div *ngFor="let comment of comments | async" class="col-md-7">
  <ul class="list-group">
    <li class="list-group-item">Author: {{comment.author}}</li>
    <li class="list-group-item">Comments: {{comment.description}}</li>
  </ul>
  <br>
</div>

关于javascript - Angular 6 : Real time data,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50996436/

相关文章:

javascript - 在 reactjs 和 nextjs 构造函数中获取引用错误 : localstorage is not defined

laravel - 如何使用 Laravel Passport 在 Angular 2 中创建身份验证?

Javascript 幻灯片放映不起作用 - 外观不正确

jquery fadeIn 将图像移动到新行

javascript - c3 图在 chrome 和 safari 浏览器上不与其他图对齐

c# - 根据单选按钮选择将表单信息提交到数据库

javascript - Firefox localStorage 如何跨所有选项卡访问它?

angular - 星云菜单父事件类不起作用

javascript - Angular 4+。为变量赋值

php - 如何使用 PHP 选择存储在数据库中的数据