这个默认配置文件的名称:default-routing-config.ts

SAP Spartacus 默认路由配置的工作原理

查看哪些地方消费了 defaultRoutingConfig:

SAP Spartacus 默认路由配置的工作原理

provudeDefaultConfig 是一个 helper 函数:

SAP Spartacus 默认路由配置的工作原理

这个 RoutingModule.forRoot 方法又会在什么时候被调用呢?

SAP Spartacus 默认路由配置的工作原理

在这两处:base-storefront.module.ts 和 storefront-foundation.module.ts:

SAP Spartacus 默认路由配置的工作原理

注意 forRoot 方法返回参数的类型:ModuleWithProviders:
SAP Spartacus 默认路由配置的工作原理

因为 import 这些 module 的消费 module,imports 区域的类型就是 any[] | Type<any> | ModuleWithProviders<{}>)[]

SAP Spartacus 默认路由配置的工作原理
SAP Spartacus 默认路由配置的工作原理

关于 ValueProvider 各参数的说明:

SAP Spartacus 默认路由配置的工作原理

  • provide:注入令牌。通常是 Type 或 InjectionToken 的实例,但也可以是 any 实例。

  • multi:如果为 true,则注入器返回实例数组。这对于允许多个提供者散布在多个文件中以向公共令牌提供配置信息很有用。

一个例子:

const locale = new InjectionToken<string[]>('locale');
const injector = Injector.create({
  providers: [
    {provide: locale, multi: true, useValue: 'en'},
    {provide: locale, multi: true, useValue: 'sk'},
  ]
});

const locales: string[] = injector.get(locale);
expect(locales).toEqual(['en', 'sk']);

ModuleWithProviders:对 NgModule 及其相关 providers 的包装。

更多Jerry的原创文章,尽在:"汪子熙":
SAP Spartacus 默认路由配置的工作原理

相关文章:

  • 2021-07-22
  • 2022-12-23
  • 2021-06-29
  • 2021-08-24
  • 2021-05-19
  • 2022-01-09
  • 2021-11-25
猜你喜欢
  • 2022-12-23
  • 2021-09-29
  • 2021-04-18
  • 2021-04-29
  • 2021-08-14
  • 2022-12-23
相关资源
相似解决方案