如果您使用的是Angular 17,您可以在服务中使用信号(signals)。
import { Injectable, signal } from '@angular/core';
@Injectable({
providedIn: 'root',
})
export class SampleService {
count = signal(0);
}
在组件一中,您可以更改这个计数值;而在组件二中,您可以监听这个变化。
组件一:
constructor(private sampleService: SampleService) {}
this.sampleService.count.set(2);
组件二:
import { Component, effect } from '@angular/core';
// ...
constructor(private sampleService: SampleService) {
effect(() => console.log(this.sampleService.count()))
}
每当您在组件一或其他任何地方更改计数值时,组件二都会接收到通知。