내가 만든 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
공급자로 선언 한 하나의 모듈 아래에 있습니다.
감사합니다 ~
경우 EVENTDATA가 더없는 value
속성을, 그래서 여기에 정의되지 않은 반환 - (e: EventData) => e['value'])
.
또한 public
생성자 속성 으로 이동 하여 클래스를 단순화 할 수 있습니다.
export class EventData {
constructor(public eventName: string, public event: any) {}
}
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다