主题更改后标题上的更新值

问题描述 投票:0回答:2

我正在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项目中使用通知功能。标头上有一个属性,称为通知,用于存储该用户的新通知数量。我想动态更新...

angular typescript rxjs angular5
2个回答
0
投票

尝试像这样调试它:


0
投票

您需要在此处使用Observables ...在服务中,请执行以下操作:

© www.soinside.com 2019 - 2024. All rights reserved.