ngOnDestroy'da özel bir etkinlik yayınlamak mümkün mü? Denedim, ama işe yaramıyor gibi görünüyor ... Temelde bir Direktifin UI'den kaldırıldığını bilmek zorundayım.Angular2 ngOnDestroy, emit olayı
@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);
}
çok Thierry teşekkür ederiz! Size bir sorum daha var: Birkaç olay emitörüyle bir Hizmet yarattım: 'tableViewOnInitEvent = new EventEmitter();' vb. Bu yayıcıları "sadece abone/salt okunur" olarak ayarlamak mümkün mü? Yayıcıları doğrudan hizmet aracılığıyla aramak istemiyorum, ancak yayımcıyı Hizmet içindeki bir işlevden aramak istiyorum. Bunun gibi: (İç Hizmet): 'public tableViewOnInit (tablo Görünümü) { \t \t this.tableViewOnInitEvent.next ({ \t \t \t tableView \t \t}); \t} 'Teşekkürler :) –
Bir Hizmet iyi bir çözümdür. Geçici bir çözüme ihtiyacınız varsa, manüel olarak abone olabilirsiniz (ve abonelikten çıkabilirsiniz) Bkz. Http://stackoverflow.com/questions/37609758/angular2-component-impossible-to-emit-an-output-eventemitter-inside-ngondestro?lq = 1 Daha fazla bilgi için açıklama –
Bir bildirim servisi global bir veriyoludur, sadece bu yaklaşıma geçerek sadece önem verdiğiniz öğeleri filtrelemek için bir yönteme ihtiyaç duyarsınız, burada 'EventEmitter' olaylarını bir hiyerarşiye dahil edebilir –