閱讀ng-alain記錄———啓動

在ng-alain文檔如何啓動部分,說到腳手架的啓動始於 startup.service.ts,那麼應用是如何來啓動它的呢?在app.module.ts註解的provider部分,提供的啓動配置都在這裏。

providers: [
        { provide: LOCALE_ID, useValue: 'zh-Hans' },
        { provide: HTTP_INTERCEPTORS, useClass: SimpleInterceptor, multi: true},
        { provide: HTTP_INTERCEPTORS, useClass: DefaultInterceptor, multi: true},
        { provide: ALAIN_I18N_TOKEN, useClass: I18NService, multi: false },
        StartupService,
        {
            provide: APP_INITIALIZER,
            useFactory: StartupServiceFactory,
            deps: [StartupService],
            multi: true
        }
    ],

在這裏StartupServiceFactory,是一個函數,採用的是FactoryProvider注入依賴的方式

export function StartupServiceFactory(startupService: StartupService): Function {
    return () => startupService.load();
}

關於FactoryProvider,可以看這遍文章

APP_INITIALIZER是一個函數數組,在應用啓動時初始化。因此在應用啓動時,startupService.load()會被調用,來完成初始化工作。

更詳細的依賴注入查看https://segmentfault.com/a/1190000009612113


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章