EventEmitter로 이벤트를 발생시키는 방법을 알고 있습니다. 다음과 같은 구성 요소가있는 경우 호출 할 메서드를 연결할 수도 있습니다.
<component-with-event (myevent)="mymethod($event)" />
이와 같은 구성 요소가 있으면 모든 것이 잘 작동합니다. 일부 로직을 서비스로 이동했고 서비스 내부에서 이벤트를 발생시켜야합니다. 내가 한 일은 다음과 같습니다.
export class MyService {
myevent: EventEmitter = new EventEmitter();
someMethodThatWillRaiseEvent() {
this.myevent.next({data: 'fun'});
}
}
이 이벤트를 기반으로 일부 값을 업데이트해야하는 구성 요소가 있지만 제대로 작동하지 않는 것 같습니다. 내가 시도한 것은 다음과 같습니다.
//Annotations...
export class MyComponent {
constructor(myService: MyService) {
//myService is injected properly and i already use methods/shared data on this.
myService.myevent.on(... // 'on' is not a method <-- not working
myService.myevent.subscribe(.. // subscribe is not a method <-- not working
}
}
이벤트를 발생시키는 서비스가 컴포넌트가 아닌 경우 MyComponent가 이벤트를 구독하게하려면 어떻게해야합니까?
2.0.0-alpha.28에 있습니다.
편집 : 실제로 작동하도록 내 "작동 예제"를 수정하여 작동하지 않는 부분에 초점을 맞출 수 있습니다.)