Я работаю над функцией уведомления в проекте Angular 5. В заголовке есть свойство notifications
, в котором хранится количество новых уведомлений для этого пользователя.
Я хочу динамически обновлять это свойство notifications
в заголовке после вызова из другого компонента, что означает, что я буду уменьшать его каждый раз время, когда пользователь нажимает на кнопку «видел». Но даже если компонент заголовка настроен для подписки при изменении субъекта службы уведомлений, значение notifications
не меняется.
Это выдержка из notification.service.ts
export class NotificationService {
notifications: any;
public notificationChange: Subject<number> = new Subject<number>();
constructor(private http: HttpClient){
this.notificationChange.subscribe((value) => {
this.notificationNumber = value;
});
}
updateNotificationNumber(item: any) {
this.notificationChange.next(item);
}
}
На моем notification.component.ts
есть функция updateNotificationToSeen
, вызываемая после нажатия кнопки (отправленное число жестко закодировано только для целей тестирования. Я сделаю это сразу после того, как увижу эффективные изменения), которое вызывает updateNotificationNumber
из службы .
export class NotificationComponent implements OnInit {
constructor(private notificationService: NotificationService){}
updateNotificationToSeen() {
this.notificationService.updateNotificationNumber(150);
}
}
Это выдержка из header.component.ts
, на которую я попытался подписать уведомлениеChange на constructor
, но она не сработала. Я также попробовал способ, описанный ниже, на ngOnInit
, но опять же, без изменений.
export class HeaderComponent implements OnInit {
notifications: number;
constructor(public notificationService: NotificationService) {
}
ngOnInit(){
this.notificationService.notificationChange.subscribe(value =>{
this.notifications = value;
})
}
}
Я пробовал несколько учебных пособий, но я не мог понять, почему в заголовке не отображаются изменения после это свойство.
Буду признателен за любые мысли о лучшем решении для этого.