源代码:
import { Injectable } from '@angular/core';
import { Config } from '../../config/config-tokens';
@Injectable({
providedIn: 'root',
useExisting: Config,
})
export abstract class FeaturesConfig {
features?: {
[featureToggle: string]: string | boolean;
};
}
FeatureConfig需要注入config-tokens里提供的Config.
Configuration injection token创建的factory方法:
而Configuration又依赖于DefaultConfiguration,因此需要先注入后者:
调用_currentInjector.get拿到DefaultConfigurationToken的实例。
_currentInjector的类型是R3Injector:
records字段里有注入好的实例:
this.records是一个map,首先检查传入的token是否已经在map里存在:
这个record里的属性很多:
感觉有很多module都使用了DefaultConfigurationChunk作为injection token
?
以这个cmsStoreConfigFactory工厂为例:cmsStoreConfigFactory
看个例子:
provideDefaultConfigFactory是一个helper function,接收另一个factory函数作为输入。
调用工厂函数获得value:
遍历这119条记录:
网友评论