【发布时间】:2017-08-22 21:20:29
【问题描述】:
我正在尝试在 Angular 中使用 EventEmitter 来实现观察者类型的模式。
例如,我有一个名为 component1Publisher 的发布者
component1Publisher: EventEmitter<any> = new EventEmitter();
发布如下事件
this.component1Publisher.emit(data);
订阅多个组件,如下所示
component1Publisher.subscribe((data:any) => {
//do something here;
});
您可以看到发布者是静态声明的。在我的项目中发布者和订阅者是完全动态的。所以我想根据我唯一的组件名称创建这个 EventEmitter 实例和订阅者。如下所示
createEvent(uniqueName:string){
//new unique eventEmitter
}
我的问题 我有一个可重用的框架来创建一个仪表板,用户可以带来框架本身提供的小部件。所以我试图在小部件之间进行通信以使其具有交互性。例如,当您单击小部件时,应通知所有其他小部件。为此,我打算告诉用户提供动态服务。在动态服务中有一些方法,如 onWidgetClick(),它会通过动态解析服务来由框架触发。在该方法中,用户可以创建要发布的事件。它将用新数据通知所有小部件,框架将用新数据更新它(所有可重用的小部件都有订阅者)。
你能帮我解决这个问题吗,或者建议有没有其他方法可以实现这种实现
【问题讨论】:
-
根据实际需求更新问题
标签: angular observer-pattern eventemitter