【发布时间】:2018-10-30 21:06:47
【问题描述】:
我有一个显示对象列表的组件。当单击此列表中的一个元素时,我想将该对象传递给另一个页面上的另一个组件。
所以基本上是列表组件->服务组件->详情组件->显示点击列表组件详情
列表组件:
setCurrentMovie(movie: IMovie){
this._currentMovieService.setCurrentMovie(movie);
}
我用来跟踪当前对象的服务类
setCurrentMovie(movie: IMovie){
this.movie = movie;
}
getCurrentMovie(): Observable<IMovie>{
return of(this.movie);
}
显示当前对象的详细信息组件
getCurrentMovie(){
console.log(this._currentMovieService.getCurrentMovie().subscribe(value=>this.currentMovie = value)); // logs undefined
}
详情组件html
<div *ngIf="currentMovie">
{{currentMovie.MovieName}}
</div>
然而这并没有显示任何东西。
【问题讨论】:
-
您在哪里提供服务。在哪个模块?尝试将服务移至更高级别
-
您确定您的对象具有
MovieName属性吗?{{ currentMovie | json}}是否显示任何内容? -
你的
rxjs是什么版本? -
你在哪里调用
getCurrentMovie()方法? -
在 details 组件的 ngOnInit 中调用
标签: angular typescript observable