ngOnDestroyでカスタムイベントを発行することは可能ですか?試してみましたが、うまくいかないようです...基本的には、UIからディレクティブが削除されたことを知る必要があります。
@Output() rowInit = new EventEmitter();
@Output() rowDestroy = new EventEmitter();
ngAfterViewInit() {
this.rowInit.emit(this);
}
ngOnDestroy() {
console.log("I get called, but not emit :(, ngAfterViewInit works :)");
this.rowDestroy.emit(this);
}
コンポーネント自体の内部ではなく、サービスで定義されたEventEmitter
を使用できると思います。このように、コンポーネントはサービスのこの属性を利用してイベントを発行します。
import {EventEmitter} from 'angular2/core';
export class NotificationService {
onDestroyEvent: EventEmitter<string> = new EventEmitter();
constructor() {}
}
export class MyComponent implements OnDestroy {
constructor(service:NotificationService) {
this.service = service;
}
ngOnDestroy() {
this.service.onDestroyEvent.emit('component destroyed');
}
}
他の要素/コンポーネントは、このEventEmitterでサブスクライブして通知を受けることができます。
this.service.onDestroyEvent.subscribe(data => { ... });
それがあなたを助けることを願っています、ティエリー