2017-05-05 12 views
9
const appRoutes: Routes = [ 
    { path: 'parent', component: parentComp, data: { foo: 'parent data' }, children: [ 
    { path: 'child1', component: childComp1, data: { bar: 'child data 1' }, 
    { path: 'child2', component: childComp2, data: { bar: 'child data 2' } 
    ]} 
]; 

अगर मैं /parent/child2 पर जाकर parentComp से ActivatedRoute को देखो, data.foo परिभाषित किया गया है, लेकिन data.bar नहीं है। मेरे पास सभी बच्चों की एक सरणी है, लेकिन मुझे नहीं पता कि कौन सा सक्रिय है।मैं अभिभावक मार्ग के घटक से सक्रिय बाल मार्ग के डेटा तक कैसे पहुंच सकता हूं?

मैं माता-पिता मार्ग के घटक से सक्रिय बाल मार्ग के डेटा तक कैसे पहुंच सकता हूं?

उत्तर

8

पहले बच्चे को आप डेटा

constructor(route: ActivatedRoute) { 
    route.url.subscribe(() => { 
    console.log(route.snapshot.firstChild.data); 
    }); 
} 
+2

तो 'firstChild' पहले बच्चे मार्ग बच्चों में परिभाषित नहीं है पर पहुँच प्रदान करेगा, लेकिन अपने ही सक्रिय बच्चों के पहले बच्चे? – adamdport

+0

क्या आप जानते हैं कि एक ही परिदृश्य में देखने योग्य का उपयोग कैसे करें? मैंने यह कोशिश की। Route.firstChild.data.subscribe लेकिन जब मैं अन्य बाल घटक पर नेविगेट करता हूं तो यह ट्रिगर नहीं किया जा रहा है? – jbojcic

+0

@ जुलिया, आप एक घटक रहित मार्ग/नामस्थान के नीचे उन बच्चों के मार्गों को घोंसला क्यों नहीं करते? आपका उत्तर 'route.firstChild.data' से' path.firstChild.firstChild.data' में बदल जाता है। इसे फिर से रखें और आपके पास 'मार्ग है। फर्स्ट चाइल्ड.फर्स्ट चाइल्ड.फर्स्ट चाइल्डडाटा'। यदि आपके पास एकाधिक संदर्भ हैं तो इसका मतलब भारी परिवर्तन हो सकता है। क्या 'ActivatedRoute स्नैपशॉट' की ज़रूरतें 'path.lastChild' है, हमेशा ऑब्जेक्ट को श्रृंखला के नीचे सबसे दूर करने के लिए। सवाल यह है, * क्या मार्ग 'फर्स्ट चाइल्ड' पहले मेरे मार्ग के 'बच्चों' सरणी में घोषित किया गया है? या, अगला है, कहें, ''/रूट/दादा/माता-पिता/बच्चे/पोते ''? * – Cody

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