मैं DataResolver
सेवा लिखने की कोशिश कर रहा हूं जो कोणीय 2 राउटर को मेरे घटक को शुरू करने से पहले डेटा को प्रीलोड करने की अनुमति देगा।कोणीय 2: मार्ग डेटा के लिए एक मान पास करें
रिज़ॉल्यूवर को लोड होने वाले रूट के लिए उचित डेटा लाने के लिए अलग-अलग एपीआई एंडपॉइंट्स को कॉल करने की आवश्यकता है। मेरे कई घटकों के लिए एक रिज़ॉल्वर होने की बजाय, मैं एक सामान्य संकल्पक बना रहा हूं। इस प्रकार, मैं मार्ग परिभाषा में कस्टम इनपुट पास करना चाहता हूं जो सही एंडपॉइंट को इंगित करता है। उदाहरण के लिए, इन मार्गों पर विचार करें:
app.routes.ts
appRoutes = [
{
path: 'project/:id',
component: ProjectComponent,
resolve: { data: DataResolver }
},
{
path: 'store/:id',
component: StoreComponent,
resolve: { data: DataResolver }
}
]
पहले उदाहरण में रिसोल्वर /path/to/resource1/id
कॉल करने के लिए की आवश्यकता होगी। दूसरे मामले में, /path/to/resource2/id
। आदर्श रूप से, मैं एंडपॉइंट को रूट परिभाषा में एक तर्क के रूप में पास कर दूंगा जो तब DataResolver
कन्स्ट्रक्टर में उपलब्ध होगा।
क्या यह सामान्य जेनरेटर क्लास के साथ किया जा सकता है?
Angular 2.0.1
Typescript 2.0.3
अंतिम पंक्ति में - 'path.data ['path']', 'आईडी' स्वचालित रूप से वर्तमान रूट पैरामीटर के साथ बदल दिया जाएगा या यह शाब्दिक स्ट्रिंग 'प्रोजेक्ट/आईडी आईडी होगा? – BeetleJuice
नहीं। मुझे लगता है कि मैंने आपके प्रश्न को गलत समझा। हालांकि मैं यही चाहता था। बस 'मार्ग' से 'यूआरएल' प्राप्त करें। यह एक 'UrlSegment [] 'होगा। 'url [1] .path' में आईडी होना चाहिए, और' url [0] .path' 'project' –
होना चाहिए, मैं समझाने के लिए एक बेहतर काम कर सकता था। 'हल() 'एपीआई को कॉल करेगा और पर्यवेक्षक को वापस करेगा जो सर्वर द्वारा लौटाए गए डेटा को उत्सर्जित करेगा। मेरी चुनौती यह थी कि कॉल करने के लिए एपीआई एंडपॉइंट उस घटक पर निर्भर करता है जिसका डेटा हल हो रहा है। आपका जवाब हालांकि उपयोगी है। मैं 'संकल्प() 'पर कस्टम इनपुट उपलब्ध कराने के लिए मार्ग की' डेटा' प्रॉपर्टी का उपयोग कर सकता हूं। धन्यवाद। – BeetleJuice