【发布时间】:2019-08-12 11:24:29
【问题描述】:
尝试显示来自 TMDB 电影 api 的名为“认证”的字段,我成功获取所有其他信息,但不适用于该特定字段:
电影组件代码:
import { Component, OnInit } from '@angular/core';
import { DomSanitizer } from '@angular/platform-browser';
import { ActivatedRoute } from '@angular/router';
import {MoviesService} from '../movies.service';
@Component({
selector: 'app-movie',
templateUrl: './movie.component.html',
styleUrls: ['./movie.component.css']
})
export class MovieComponent implements OnInit {
movie: Object;
reviews: Array<Object>;
similarMovies: Array<Object>;
certification: Object;
cast: Array<Object>;
video: Object;
constructor(
private _moviesServices: MoviesService,
private router: ActivatedRoute,
private sanitizer: DomSanitizer
) {
}
ngOnInit() {
this.router.params.subscribe((params) => {
const id = params['id'];
this._moviesServices.getMovie(id).subscribe(movie => {
this.movie = movie;
});
this._moviesServices.getMovieReviews(id).subscribe((res: any) => {
this.reviews = res.results;
});
this._moviesServices.getMovieCredits(id).subscribe((res: any) => {
res.cast = res.cast.filter((item) => {return item.profile_path});
this.cast = res.cast.slice(0,8);
});
this._moviesServices.getMovieVideos(id).subscribe((res: any) => {
if(res.results && res.results.length) {
this.video = res.results[0];
this.video['url'] = this.sanitizer.bypassSecurityTrustResourceUrl('https://www.youtube.com/embed/' + this.video['key']);
}
});
this._moviesServices.getSimilarMovies(id).subscribe((res: any) => {
console.log(res.results);
this.similarMovies = res.results.slice(0, 18);
});
this._moviesServices.getCertification(id).subscribe((res: any) => {
console.log(res.results);
this.certification = res.results;
});
})
}
}
这不起作用:
this._moviesServices.getCertification(id).subscribe((res: any) => {
console.log(res.results);
this.certification = res.results;
});
html代码:
<p class="badge badge-pill badge-success p-2" *ngIf="movie.certification">
{{movie.certification }}
</p>
电影服务:
getCertification(id: string) : Observable<any> {
const params = new HttpParams()
.set('api_key', this.apikey);
return this.http.get('https://api.themoviedb.org/3/movie/'+ id +'/release_dates', {params})
}
API 网址:https://api.themoviedb.org/3/movie/99/release_dates?api_key="my_api_key"
【问题讨论】:
-
能否显示组件代码
-
@Jamie,是的,我已经用共同代码更新了问题
-
你能做stackblits吗
-
谢谢,控制台有错误吗?因为
movie.certification将是一个对象数组,所以要将它放在 UI 上,您需要遍历数组。 -
谢谢!这是它在控制台中显示的内容: 25: {iso_3166_1: "US", release_dates: 'Array(2)} 和 release_dates: Array(2) 0: {certification: "PG-13", iso_639_1: "en", note : "Dolby Theater", release_date: "2019-07-13T00:00:00.000Z", type: 1} ' 这就是我想要展示的认证