假设我在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:
最后的效果: