क्या ngOnDestroy पर एक कस्टम घटना को उत्सर्जित करना संभव है? मैंने कोशिश की, लेकिन ऐसा लगता है कि यह काम नहीं करता है ... मुझे मूल रूप से यह जानने की जरूरत है कि यूआई से निर्देश हटा दिया गया है।कोणीय 2 ngOnDestroy, उत्सर्जन घटना
@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);
}
आपको बहुत बहुत धन्यवाद थियरी! मुझे आपके लिए एक और सवाल मिला है: मैंने कुछ इवेंट उत्सर्जकों के साथ एक सेवा बनाई है: 'tableViewOnInitEvent = new EventEmitter(); 'आदि। क्या उन उत्सर्जकों को" केवल सदस्यता/केवल पढ़ने "के लिए सेट करना संभव है? मैं सीधे सेवा के माध्यम से उत्सर्जकों को कॉल नहीं करना चाहता हूं, लेकिन मैं सेवा के अंदर एक फ़ंक्शन से एमिटर को कॉल करना चाहता हूं: (सेवा के अंदर): 'सार्वजनिक तालिका दृश्यवृत्त (तालिका दृश्य) { \t 0.tयह.tableViewOnInitEvent.next ({ \t \t \t तालिका दृश्य: तालिका दृश्य \t \t}); \t} 'धन्यवाद :) –
एक सेवा एक अच्छा समाधान है। यदि आपको विज्ञापन-समाधान समाधान की आवश्यकता है तो आप मैन्युअल रूप से सदस्यता ले सकते हैं (और सदस्यता समाप्त कर सकते हैं) देखें http://stackoverflow.com/questions/37609758/angular2-component-impossible-to-emit-an-output-eventemitter-inside-ngondestro?lq = 1 अधिक जानकारी स्पष्टीकरण के लिए –
एक अधिसूचना सेवा एक वैश्विक बस है, फिर भी आपको इस दृष्टिकोण पर स्विच करके केवल उन तत्वों के लिए फ़िल्टर करने का एक तरीका चाहिए, जहां 'EventEmitter' में अपनी घटनाओं को पदानुक्रम में शामिल किया जा सकता है –