學習目錄
本文主要給大家介紹了關于Angular 4依賴注入之FactoryProvider配置依賴對象的相關內容,分享出來供大家參考學習,下面來看看詳細的介紹:
本系列教程的開發環境及開發語言:
Angular 4 + Angular CLI TypeScript基礎知識
Console 對象
Console 對象可以在任何全局對象中訪問,如 Window,WorkerGlobalScope 以及通過屬性工作臺提供的特殊定義。在瀏覽器中我們可以通過 Window.console 訪問 console 對象,使用示例如下:
console.log('My nickname is semlinker');FactoryProvider 的作用
FactoryProvider 用于告訴 Injector (注入器),通過調用 useFactory 對應的函數,返回 Token 對應的依賴對象。
FactoryProvider 接口
export interface FactoryProvider { // 用于設置與依賴對象關聯的Token值,Token值可能是Type、InjectionToken、 // OpaqueToken的實例或字符串 provide: any; // 設置用于創建對象的工廠函數 useFactory: Function; // 依賴對象列表 deps?: any[]; // 用于標識是否multiple providers,若是multiple類型,則返回與Token關聯的依賴 // 對象列表 multi?: boolean;}在 FactoryProvider的使用 這篇文章中,我們已經介紹了 FactoryProvider 的一些相關知識。接下來我們將介紹如何使用 FactoryProvider 配置依賴對象。
FactoryProvider
俗話說得好,溫故而知新。我們先來回顧一下上一節創建的 LoggerService 服務:
export class LoggerService { constructor(private enable: boolean) { } log(message: string) { if(this.enable) { console.log(`LoggerService: ${message}`); } }}LoggerService 的正確配置方式如下:
@NgModule({ ..., providers: [ HeroService, { provide: LoggerService, useFactory: () => { return new LoggerService(true); } } ], bootstrap: [AppComponent]})export class AppModule { }在繼續介紹前,我們先來了解一下 Angular 的一大特色:
跨平臺開發
學習如何基于 Angular 構建應用程序,并復用代碼和技能來構建適用于所有平臺的應用。比如:Web應用、移動Web應用、原生移動應用和原生桌面應用等。
沒錯,Angular 框架的一大特色就是跨平臺開發。回到正題,不知道讀者有沒有察覺到,在 LoggerService 類中的 log() 方法內,我們是直接使用 console.log() 方法輸出調試信息。雖然在大多數情況下,我們的應用都是運行在瀏覽器環境下,但 console.log() 存在兼容性問題 (了解詳細信息 - Can I Use)。除此之外,假如日后我們的應用需要運行在其它平臺下,就會出現問題。
新聞熱點
疑難解答
圖片精選