广播事件在Angular 13中(与$rootScope相同).$broadcast()在AngularJS中).<



我想实现所有模块和组件之间的连接与事件广播。如果我在一个组件中广播一个事件,它应该被根模块以及任何子组件接收。如何做到这一点。我用过AngularJS,它提供了$rootScope。$broadcast()用于广播事件,如何在Angular 13中实现它

我会实现一个服务,它有一个私有的BehaviorSubject和一个可以订阅的公共Observable。另外还有一些发送消息的功能。起始点可以是:

broadcast.service.ts

import { Injectable } from '@angular/core';
import {BehaviorSubject} from "rxjs";
@Injectable({
providedIn: 'root'
})
export class BroadcastService {
private messageSubject: BehaviorSubject<string> = new BehaviorSubject<string>("Initial message")
broadcastMessage$ = this.messageSubject.asObservable()

constructor() { }
sendMessage(message: string){
this.messageSubject.next(message);
}
}

最新更新