Tôi biết cách nâng cao sự kiện bằng EventEmitter. Tôi cũng có thể đính kèm một phương thức được gọi nếu tôi có một thành phần như sau:
<component-with-event (myevent)="mymethod($event)" />
Khi tôi có một thành phần như thế này, mọi thứ hoạt động tuyệt vời. Tôi đã chuyển một số logic vào một dịch vụ và tôi cần nêu ra một sự kiện từ bên trong Dịch vụ. Những gì tôi đã làm là:
export class MyService {
myevent: EventEmitter = new EventEmitter();
someMethodThatWillRaiseEvent() {
this.myevent.next({data: 'fun'});
}
}
Tôi có một thành phần cần cập nhật một số giá trị dựa trên sự kiện này nhưng dường như tôi không thể làm cho nó hoạt động. Những gì tôi đã thử là:
//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
}
}
Làm cách nào để đặt MyComponent đăng ký sự kiện khi dịch vụ nâng cao nó không phải là một thành phần?
Tôi đang sử dụng Trên 2.0.0-alpha.28
CHỈNH SỬA: Đã sửa đổi "ví dụ làm việc" của tôi để thực sự hoạt động, vì vậy có thể tập trung vào phần không hoạt động;)