我照常在服务文件中创建了一个主题
editLectures = new Subject<Lecture>();
getEditLectureListener() {
return this.editLectures.asObservable();
}
我正在从一个组件发送数据(console.log
时我得到了正确的数据)
onUpdate(lec: any) {
this.attendanceService.emitLecture(lec);
}
在另一个组件上,我正在听主题:
this.updateLecture = this.attendanceService.getEditLectureListener().subscribe(result => {
// my code
// on console.log(result) i am not getting anything and other listeners
// are working perfectly, the only difference is that
// its not emitting data from http response
});
在使用中,我正在发射数据:
emitLecture(lec: Lecture) {
this.editLectures.next(lec);
this.router.navigate(['edit-lecture']);
}
答案 0 :(得分:9)
您需要使用BehaviorSubject而不是Subject,以便最后发出的值可用于新订户(实例化您的侦听器组件时)。
editLectures = new BehaviorSubject<Lecture>(null);