2016-09-29 19 views
10

मैं एक माता पिता के घटक है जो एक लिंक के क्लिक पर एक नया घटक खोलता है को नष्ट घटना आह्वान कर सकते हैं, इस नए घटक को बंद करें बटन जो पास पर माता-पिता के लिए एक बंद संदेश भेजता है और खुद को नष्ट करने के लिए माना जाता है ।घटक एक आत्म

हम ngOnDestroy विधि का उपयोग कर समापन संदेश भेज सकते हैं, लेकिन मैं बच्चे के घटक को नष्ट करने का आह्वान कैसे करूं।

<parent> 
    <child></child> //child to be opened on click but close 
        //event should be inside the child componenet 
</parent> 

अगर मुझे यहां कुछ वैचारिक गलती हो रही है तो मुझे सही करें। धन्यवाद

उत्तर

15

आप एक घटक ViewContainerRef.createComponent() तरह Angular 2 dynamic tabs with user-click chosen components में दिखाया गया है का उपयोग कर जोड़ने, तो घटक खुद को नष्ट कर जब आपके द्वारा बनाए घटक को cmpRef पारित कर सकते हैं।

अन्यथा मुझे नहीं लगता कि एक तरीका है। आप माता-पिता को एक मान पास कर सकते हैं ताकि *ngIf घटक को हटा दें।

<child *ngIf="showChild" (close)="showChild = false"></child> 
class ParentComponent { 
    showChild:boolean = true; 
} 
class ChildComponent { 
    @Output() close = new EventEmitter(); 

    onClose() { 
    this.close.emit(null); 
    } 
} 
+1

एक स्वच्छ समाधान है कि, मैं भी इस कुछ दिनों की तरह कुछ की जरूरत पहले और मैंने इसे बिल्कुल वही किया था। ऐसा मत सोचो कि इस समय इसे हासिल करने का एक बेहतर तरीका है। –

+0

@ गुंटर ज़ोचबाउर क्या आप दिखा सकते हैं कि बाल घटक की टाइपस्क्रिप्ट में "करीबी" का उपयोग कैसे करें? हम करीबी घटना को कैसे ट्रिगर करेंगे? –

+0

आपके उत्तर –

-2

इस तरह के एक समाधान की सफाई के बारे में सुनिश्चित नहीं हैं, लेकिन मैं प्रयोग किया है:

this.viewContainerRef. 
     element.nativeElement. 
     parentElement. 
     removeChild(this.viewContainerRef.element.nativeElement); 
+1

@ daniele3004 के लिए धन्यवाद, नकारात्मक वोट क्यों समझाया जाए? –

संबंधित मुद्दे