2016-04-14 14 views
7

से कोणीय 2 एक्सेस बाल घटक संपत्ति संपत्ति बच्चों के तत्व तक पहुंच की आवश्यकता है। जनक:पैरेंट घटक

<div> 
    <shipment-detail #myCarousel ></shipment-detail> 
</div> 
@Component({ 
    selector: "testProject", 
    templateUrl: "app/partials/Main.html", 
    directives: [ShipmentDetail] }) 
class AppComponent { 
    getChildrenProperty() { 
    // I want to get access to "shipment" 
    } 
} 

बच्चे:

@Component({ 
    selector: "shipment-detail", 
}) 
export class ShipmentDetail { 
    shipment: Shipment; 
} 

उत्तर

15

Component Interaction cookbook देखें। तो, @ViewChild() का उपयोग करें और शिपमेंटडिमेंट में एक विधि जोड़ें कि माता-पिता शिपमेंट मान को पुनर्प्राप्त करने के लिए कॉल कर सकते हैं, या नीचे दिखाए गए अनुसार सीधे संपत्ति तक पहुंच सकते हैं (क्योंकि मैं आलसी था और एपीआई/विधि):

@Component({ 
    selector: "testProject", 
    templateUrl: "app/partials/Main.html", 
    directives: [ShipmentDetail] 
}) 
export class AppComponent { 
    @ViewChild(ShipmentDetail) shipmentDetail:ShipmentDetail; 
    ngAfterViewInit() { 
     this.getChildProperty(); 
    } 
    getChildProperty() { 
    console.log(this.shipmentDetail.shipment); 
    } 
} 

Plunker

+0

बढ़िया है, समाधान के लिए धन्यवाद ... एक टिप (मेरे जैसे शुरुआती) के रूप में मैं इसे का सामना करना पड़ा ... अंदर संपत्ति तक पहुँचने के लिए 'constructor' यह दे देंगे एक रनटाइम त्रुटि, इसलिए 'ngAfterViewInit() 'यादृच्छिक पसंद नहीं है। –

+1

आरसी 6 निर्देशों में बहिष्कृत किया गया है, इसलिए आपको केवल निर्देशों को हटाने की आवश्यकता है: [शिपमेंट विवरण] –

+2

ऐसा लगता है कि एक दिलचस्प सवाल है, यह इस सप्ताह में कैसे किया जा सकता है। – peterh