我正在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
的摘录,我尝试在constructor
上订阅notificationChange,但没有用。我也尝试了下面列出的方法,在ngOnInit
上,但是再次,没有任何更改。
export class HeaderComponent implements OnInit { notifications: number; constructor(public notificationService: NotificationService) { } ngOnInit(){ this.notificationService.notificationChange.subscribe(value =>{ this.notifications = value; }) } }
我已经尝试了一些教程,但是我无法弄清楚为什么标头在该属性之后看不到更改。
我将不胜感激,希望为此提供更好的解决方案。
我正在Angular 5项目中使用通知功能。标头上有一个属性,称为通知,用于存储该用户的新通知数量。我想动态更新...
尝试像这样调试它:
您需要在此处使用Observables ...在服务中,请执行以下操作: