簡體   English   中英

如何配置angular2注射劑

[英]How do I configure an angular2 Injectable

在AngularJS中,我可以通過使用在應用程序級別配置服務

myApp.config(function(unicornLauncherProvider) {

});

參考: https : //docs.angularjs.org/guide/providers

什么是angular2等效項?

Angular2支持基於構造函數的依賴注入。 為了能夠注入某些東西,您需要在引導應用程序時或在組件的providers屬性內指定其關聯的提供程序。

這是一個示例:

bootstrap(AppComponent, [ UnicornLauncher ]);

要么

@Component({
  (...)
  providers: [ UnicornLauncher ]
})

然后可以在構造函數參數中指定類型:

constructor(private launcher:UnicornLauncher) {
}

請注意,您需要圍繞相應的類(例如ComponentInjectable進行裝飾。

編輯

如果你想“配置”的提供者,你可以充分利用provide與功能useFactory

bootstrap(AppComponent, [
  provide(UnicornLauncher, { useFactory: () => {
    let ul = new UnicornLauncher();
    // configure
    return ul;
  })
]);

我想您正在尋找如何使用提供程序來配置將如何注入服務的方法,對嗎?

如果是這樣,讓我們​​以蒂埃里(Thierry)發布的內容為例。

提供者: [UnicornLauncher]只是一種告訴角度如何實例化服務的更干凈的方法。 這是angular的理解:

 [new Provider(UnicornLauncher, {useClass: UnicornLauncher})] 

假設每次注入UnicornLauncher時都想使用其他類:

 [new Provider(UnicornLauncher, {useClass: UnicornLauncherCustom})] 

有很多方法可以配置您自己的提供程序。 我建議您看一下角度文檔。

https://angular.io/docs/ts/latest/guide/dependency-injection.html?%20Provider%20class%20and%20provide%20function#!#providers

問候,

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM