यदि आप अभी भी समाधान ढूंढ रहे हैं, तो यहां बताया गया है कि मैंने जो कुछ आप पूछ रहे थे (कोणीय 4.2.4 का उपयोग करके) को पूरा किया।
अपने AppModule
(या वह स्थान जहां आप अपनी लाइब्रेरी आयात करना चाहते हैं) में, विधि को पर कॉल करें। इस फ़ंक्शन की सहायता से, आप किसी भी कॉन्फ़िगरेशन मान को आपके लाइब्रेरी में पास कर सकते हैं, उदा। आपके ऐप का पर्यावरण।
import {environment} from "../environments/environment";
...
@NgModule({
declarations: [
AppComponent
],
imports: [
BrowserModule,
...
LibraryModule.forRoot(environment)
],
bootstrap: [AppComponent]
})
export class AppModule {
}
आप निश्चित रूप से LibraryModule
forRoot()
विधि की पेशकश करने की जरूरत है। प्रदाता सरणी में आप सेवाओं को प्रदान कर सकते हैं, मूल्य and more। इस मामले में, 'env'
सादगी के लिए दिए गए पर्यावरण वस्तु को रखने वाले टोकन के रूप में कार्य करता है। आप इसके बजाय InjectionToken का भी उपयोग कर सकते हैं।
@NgModule({
...
})
export class LibraryModule {
public static forRoot(environment: any): ModuleWithProviders {
return {
ngModule: LibraryModule,
providers: [
ImageService,
{
provide: 'env', // you can also use InjectionToken
useValue: environment
}
]
};
}
}
टोकन env
के बाद से अब अपनी LibraryModule
द्वारा प्रदान की जाती है, तो आप इसे अपने बच्चे को सेवाओं या घटकों के सभी में इंजेक्षन कर सकते हैं।
@Injectable()
export class ImageService {
constructor(private http: Http, @Inject('env') private env) {
}
load(): Observable<any> {
// assume apiUrl exists in you app's environment:
return this.http.get(`${this.env.apiUrl}/images`)
.map(res => res.json());
}
}
मुझे उम्मीद है कि इससे मदद मिलती है!
क्या आपको इसके लिए उत्तर मिला? मैं वही काम करना चाहता हूं – leopic