मैं उपयोग Angular2 v2.2.3Angular2 - अतुल्यकालिक निर्भरता इंजेक्शन
मैं forRoot (के साथ आम मॉड्यूल बना लिया है) समारोह, इस तरह:
export function ConfigFactory(http:Http):Promise<ConfigService> {
return http.get('confg/config.json').map(r => {
return new ConfigService(r);
}).toPromise();
}
:
...
public static forRoot(): ModuleWithProviders {
return {
ngModule: CommonsModule,
providers: [
SomeOtherDependency,
{
provide: ConfigService,
useFactory: ConfigFactory,
deps: [Http]
}
]
};
यहाँ मेरी ConfigFactory है
मैंने वादा और पर्यवेक्षक को वापस करने की कोशिश की है।
प्रदाताओं में परिभाषित कुछ अन्य निर्भरता को ConfigService की आवश्यकता होती है। समस्या यह है कि कोणीय वादे से हल मूल्य को इंजेक्ट नहीं करता है बल्कि खुद वादा करता है।
मैं कोणीय को उचित निर्भरता के साथ हल होने तक प्रतीक्षा करने के लिए मजबूर कैसे कर सकता हूं और केवल तब अन्य निर्भरताओं पर इंजेक्ट कर सकता हूं?
मैंने विभिन्न दृष्टिकोणों की कोशिश की है और हमेशा इंजेक्शन मूल्य वादा या देखने योग्य है। जैसे इंजेक्टर अनदेखा करता है कि किस तरह का कारखाना लौटा। पूरे आवेदन शुरू होने से पहले मुझे कुछ जेसन फाइलों को लोड करने की आवश्यकता है
की संभावित डुप्लिकेट:
और मॉड्यूल में: यहाँ कारखाने जो APP_INITIALIZER साथ काम करता है अद्यतन किया जाता है/प्रश्न/38127741/कोणीय-2-सेवाएं-उपभोग करने वाली-अन्य-सेवाएं-पहले-कॉल-ए-विधि) – estus
इस प्रश्न पर भी टिप्पणियां देखें http://stackoverflow.com/questions/40522938/lazy-loading- मॉड्यूल -with-app-startizer? noredirect = 1 # comment68288686_40522938 – yurzui
मैंने पूछे जाने से पहले इस विषय को देखा है। वे मेरे लिए काम नहीं करते हैं। –