У меня есть несколько угловых компонентов, и я использую BehaviorSubject для передачи события между ними.
Служба:
@Injectable()
export class SiteManagementEventService {
private messageSource = new BehaviorSubject<SiteManagementEvent>(defaultEvent);
data = this.messageSource.asObservable();
constructor() {}
// publish the event using the service
public publish(event: SiteManagementEvent) {
if (event !== null) {
this.messageSource.next(event);
}
}
}
Публикация событий:
constructor (
.......
private eventService: SiteManagementService,
) {}
........
this.eventService.publish(event);
Подписаться на события:
constructor (
.......
private eventService: SiteManagementService,
) {}
onInit() {
......
this.eventService.data.subscribe(event => {console.log("event received"});
}
При наличии вышесказанного проблема заключается вчто только один принимающий компонент (у меня есть несколько принимающих компонентов) получает одно событие и не получает никаких следующих событий.
Что-то я не так сделал?Любые онлайн образцы для этого?
Спасибо!