假設我在app.config.ts裏定義了一個interface AppConfig和一個對象HERO_DI_CONFIG, 我想將後者注入到一個類的構造函數裏去:
export interface AppConfig {
apiEndpoint: string;
title: string;
}
import { InjectionToken } from '@angular/core';
export const APP_CONFIG = new InjectionToken<AppConfig>('app.config');
export const HERO_DI_CONFIG: AppConfig = {
apiEndpoint: 'api.heroes.com',
title: 'Dependency Injection'
};
使用InjectionToken新建一個token,類型參數爲AppConfig,單引號裏的app.config是injection token的描述信息。
在NgModule裏使用useValue注入:
在需要使用這個依賴的地方,將token APP_CONFIG傳入@Inject:
最後的效果: