在Angular 2中将数据从组件a传递到b

时间:2016-10-07 00:08:13

标签: angular

我正在尝试将数据从组件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

0 个答案:

没有答案