我创建了一个EventBusService
和EventData
export class EventData {
public eventName: string;
public event: any;
constructor(eventName: string, event: any) {
this.eventName = eventName;
this.event = event;
}
}
@Injectable({providedIn: 'root'})
export class EventBusService {
private subject = new Subject();
public emit(event: EventData) {
this.subject.next(event);
}
public on(eventName: string, action: any): Subscription {
return this.subject.pipe(
filter( (e: EventData) => e.eventName === eventName),
map( (e: EventData) => e['value'])).subscribe(action);
}
}
这是我发出事件的方式
this.eventBusService.emit(new EventData('SelectDefaultList', list));
值已经发出,但是我在订阅/收听undefined
时总是得到EventBusService
值>
ngOnInit() { this.eventBusService.on('SelectDefaultList', (list: List) => { console.log('hello' + list); }); }
这两个组件在一个模块下,我将
EventBusService
声明为提供程序。
谢谢〜
我创建了EventBusService和EventData导出类EventData {public eventName:string;公共活动:任何;构造函数(eventName:字符串,事件:任何){this.eventName = ...
如果EventData