मैं जो मार्गों इस प्रकार दिखाई देगा एक आवेदन है:मैं कोणीय 2 में बाल मार्गों के साथ जानकारी कैसे साझा करूं?
/:partner/login
/:partner/tools
/:partner/other
वर्तमान में 2.0.0-rc.5
का उपयोग कर, मैं काफी बस मार्गों कि बिल्कुल के रूप में ऊपर देखो बना सकते हैं। हालांकि, इस दृष्टिकोण का नकारात्मक पक्ष यह है कि प्रत्येक घटक को अपने आप पर partner
पैरामीटर निकालना होता है। तो login
पथ घोषणा दिखाई देगा:
{
path: ':partner/login',
component: LoginComponent
}
और LoginComponent
दिखाई देगा:
export class LoginComponent implements OnInit {
partner: string;
constructor(private _route: ActivatedRoute) { }
ngOnInit() {
this._route.params.forEach(p => {
this.partner = p[`partner`];
});
}
}
हालांकि यह 3 मार्गों, धारणात्मक साथ प्रबंधनीय है, क्या मैं वास्तव में कहना चाहता हूँ वह यह है कि मेरे पास PartnerComponent
है जिसमें बाल मार्ग login
, tools
, आदि रूटिंग इस तरह दिखेगा:
{ path: ':partner', component: PartnerComponent
children: [
{ path: 'login', component: LoginComponent},
{ path: 'tools', component: ToolsComponent}
]
}
और टाइपप्रति की विरासत का उपयोग कर, मैं की तरह प्रत्येक बच्चे के लिए एक आधार के घटक बना सकते हैं:
export class LoginComponent extends BaseComponent {
constructor(route: ActivatedRoute) {
super(route);
}
ngOnInit() {
super.ngOnInit();
}
}
जबकि ऊपर काम करता है, यह थोड़ा लगता है:
export class BaseComponent implements OnInit {
partner: string;
constructor(private _route: ActivatedRoute) { }
ngOnInit() {
this._route.parent.params.forEach(p => {
this.partner = p[`partner`];
});
}
}
और बच्चे घटकों कैसा लगेगा माता-पिता मार्ग को देखने के लिए गंदे। मुझे पता है कि क्या मैं पदानुक्रम बदलता हूं, मुझे केवल आधार में इसे बदलने की जरूरत है, लेकिन फिर भी
क्या माता-पिता और उसके बाल मार्ग घटकों के बीच जानकारी साझा करने का एक क्लीनर तरीका है।
यदि यह अधिक पारंपरिक मूल तत्व/बाल तत्व संबंध थे, तो हम उस जानकारी को पारित करने के लिए दोनों के बीच डेटा बाध्यकारी का उपयोग करेंगे।
क्या घटक डेटा प्रश्न से बाहर है? मैं वास्तव में एक घटक होने के नाते 'साथी' नहीं देखता, बल्कि डेटा के रूप में। क्या घटक 'धारक' का मालिक डेटा बाध्यकारी के साथ बच्चे को पास कर सकता है (यानी 'लॉगिन', 'उपकरण', 'अन्य)? –
@ केविनले AFAIK, राउटर यूआरएल पार्स करने और पैरामीटर निकालने का समर्थित तरीका है। और आप सही हैं कि अभी के लिए, 'पार्टनर कॉम्पोनेंट' में वास्तव में 'राउटर-आउटलेट> टैग के अलावा और कुछ नहीं है। हालांकि, मैं इसे लंबे समय तक विकसित कर सकता हूं और अधिक परिष्कृत हो सकता हूं। –
एचएम, अभी भी अनिश्चित है कि आपको 'पार्टनर' के लिए यूआरएल को पार्स करने की ज़रूरत है। मैंने नीचे एक उत्तर पोस्ट किया है, देखें कि क्या यह आपकी मदद करता है! हालांकि, आप इसे पहले से ही खोज चुके होंगे। –