如何通过id获取电影

时间:2021-05-21 17:53:07

标签: angular

我想通过 id 获取 tmdb json 数据到我的电影详细信息组件 html,但是“在第一次扩展时评估了这个值,它可能从那时起就发生了变化”错误

这是我的代码

电影服务

> df
  From             To   Number
  1738799     Jasmine        1
  657940        64839        2
  1738799        8494        3
  13253          2773        4
  97980       6569874        5
  6569874     1738799        6

电影细节组件

getMovieById(movieId: string): Observable<Movie>{
alert(movieId);
return this.httpClient.get<Movie>(this.path + "results?id=" + movieId);
}

组件 HTML

movies!: Movie;
  ngOnInit() {
    this.activatedRoute.params.subscribe(params=>{
     this.getMovieById(params["movieId"])
    })
  }
getMovieById(movieId: any){
this.movieService.getMovieById(movieId).subscribe(movies=>{
this.movies=data;
})
}

1 个答案:

答案 0 :(得分:0)

当您在 ngOnInit 中调用异步函数并更改某些值(在页面加载之前)时会发生这种情况,因此您可以这样做:

 ngOnInit() {
    setTimeout(() => {
      this.activatedRoute.params.subscribe(params=>{
        this.getMovieById(params["movieId"])
       })
    })
  }

通过这样做,您的代码会通知 Angular 不必等待此函数加载页面并填充变量以在 HTML 中显示它

也许你也需要这样做:

<p><span>{{movie?.title}}</span></p>

相关问题