SAPSAP

SAP Spartacus FeatuturesConfig

2021-01-30  本文已影响0人  华山令狐冲

源代码:

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条记录:



上一篇 下一篇

猜你喜欢

热点阅读