我的主题在Angular中无法正常工作

时间:2019-11-19 14:05:05

标签: angular rxjs

我照常在服务文件中创建了一个主题

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']);
}

1 个答案:

答案 0 :(得分:9)

您需要使用BehaviorSubject而不是Subject,以便最后发出的值可用于新订户(实例化您的侦听器组件时)。

editLectures = new BehaviorSubject<Lecture>(null);