我正在尝试将数据从组件a传递到b,首先HTTP
请求为我提供Id
,我需要组件b构建另一个HTTP
请求。
组件A
@Component({
selector: 'movielist',
templateUrl: './app/movie.components/movie-list/movie.view.html',
providers: [HTTP_PROVIDERS, MovieService, CoreService],
directives: [MovieDetailComponent]
})
export class MovieComponent {
@ViewChild(MovieDetailComponent) movieDetail:MovieDetailComponent
getMovies () {
this.movieService.movieRes()
.subscribe(movie => {
for (var i = 0; i < movie.results.length; i++) {
this.movieId = movie.results[i].id;
this.getMovieDetail(this.movieId);
}
});
}
ngOnInit() {
this.getMovies();
}
}
组件B
getMovieDetail (movieId:any) {
this.movieService.movieDetail(movieId)
.subscribe(details => {
console.log(details)
})
}
构建第二个HTTP
请求的服务看起来像
movieDetail (movieId: any) {
return this.http.get('https://api.themoviedb.org/3/movie/' + movieId + '?api_key=' + this.apiKey)
.map (res => res.json())
}
我尝试使用@ViewChild
但是当我在组件B中初始化getMovieDetail
时,我得到getMovieDetail
未定义的错误。
如何将movieId
从组件A传递到B?不确定使用@ViewChild
是否正确,如果是这样,我可能做错了我如何使用@ViewChild
。