我遇到了这个问题,看起来我的* ngIf没有看到我的对象作为电影对象,我不明白为什么?也许还有另外一个问题?
我已尝试过这两种方法,但它仍然无法运作,你能告诉我我在这里做错了吗?
我正在记录,当我点击一部电影时,我可以在日志和我的网址中看到我获得了正确的电影ID。
Movieservice
public getMovie(id: number): Observable<Movie> {
return this.http.get("https://api.themoviedb.org/3/movie/" + id +
"?
api_key=mykey")
.map((res: Response) => res.json())
.map(({id, title}) => <Movie>(this.movie));
}
getMovie(id: number): Observable<Movie> {
return this.http.get("https://api.themoviedb.org/3/movie/" + id + "?api_key=mykey")
.map((response: Response) => <Movie>(response.json()));
}
moviedetail组件
ngOnInit() {
this.movieService.getMovie(this.route.snapshot.params['id']);
}
我的html文件包含* ngIf
<div class="container">
<div *ngIf="movie">
<div class="row">
<div class="col-md-5">
<h1>Movie:</h1>
<b>Title:</b> {{movie.title}}<br>
<button (click)="gotoMovies()">Back</button>
</div>
<div class="col-md-3"></div>
</div>
</div>
答案 0 :(得分:0)
好像你没有为this.movie
指定价值,Observable
本质上也是懒惰的。当你初始化它们时它们只是作为函数使用,它们只会在你订阅时执行。
ngOnInit() {
this.movieService.getMovie(this.route.snapshot.params['id']).subscribe(
movie => this.movie = movie
);
}