è possibile emettere un evento personalizzato su ngOnDestroy? Ho provato, ma sembra che non funzioni ... Fondamentalmente ho bisogno di sapere quando una direttiva viene rimossa dall'interfaccia utente.Angular2 ngOnDestroy, emit evento
@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);
}
ringrazio molto Thierry! Ho ancora una domanda: ho creato un servizio con un paio di emettitori di eventi in questo modo: 'tableViewOnInitEvent = new EventEmitter();' ecc. È possibile impostare quegli emettitori su "subscribe only/read only"? Non voglio chiamare gli emettitori direttamente tramite il servizio ma voglio chiamare l'emettitore da una funzione all'interno del Servizio, come questo: (Servizio interno): 'publicViewViewInnn (tableView) { \t \t this.tableViewOnInitEvent.next ({ \t \t \t tableView: tableView \t \t}); \t} 'Grazie :) –
Un servizio è una buona soluzione. Se hai bisogno di una soluzione ad hoc puoi iscriverti manualmente (e annullare l'iscrizione) Vedere http://stackoverflow.com/questions/37609758/angular2-component-impossible-to-emit-an-output-eventemitter-inside-ngondestro?lq = 1 per ulteriori dettagli sulla spiegazione –
Un servizio di notifica è un bus globale, avresti comunque bisogno di un modo per filtrare solo gli elementi che ti interessano passando a questo approccio, dove un 'EventEmitter' può contenere i suoi eventi in una gerarchia –