gpt4 book ai didi

angular - 使用 "forRoot"将配置数据传递给 angular 库的依赖项

转载 作者:行者123 更新时间:2023-12-03 21:16:18 24 4
gpt4 key购买 nike

我创建了两个 Angular 库,一个将另一个作为依赖项。

需要使用 forRoot 方法配置依赖项。
如何将配置数据从父库传递到它的依赖项?

例如,假设我们有 TopLevelLib ,它有 OtherLib 作为依赖项。 OtherLib 需要使用 forRoot 传递一个配置对象。

最终用户的 AppModule,导入到

@NgModule({
imports: [
TopLevelLib.forRoot(someConfigData)
],
declarations: [...],
exports: [...]
})
export class AppModule { }

TopLevelLib - 由最终用户导入到 AppModule
@NgModule({
imports: [
...
OtherLib.forRoot(*****what goes in here?*****)
],
declarations: [...],
exports: [...]
})
export class TopLevelLib {
static forRoot(config: ConfigObj): ModuleWithProviders {
return {
ngModule: SampleModule,
providers: [{ provide: SomeInjectionToken, useValue: config }]
};
}
}

OtherLib - 由 TopLevelLib 导入 o​​jit_rstrong
@NgModule({
imports: [...],
declarations: [...],
exports: [...]
})
export class OtherLib {
static forRoot(config: ConfigObj): ModuleWithProviders {
return {
ngModule: SampleModule,
providers: [{ provide: SomeInjectionToken, useValue: config }]
};
}
}

我需要的是将配置对象实例从 TopLevelLib 传递到 OtherLib。这样当最终用户使用 forRoot 配置 TopLevelLib 时,OtherLib 将使用相同的数据进行配置。

关于如何实现这一点的任何想法?

最佳答案

您可以输入 forRoot 参数。您已明确定义 OtherLibconfig: ConfigObj 作为参数 - 这意味着 TopLevelLib 需要使用 ConfigObj 的实例对其进行配置。所以 *****what goes in here?***** 注释的答案是: ConfigObj 的一个实例。

编辑 :评论后,您似乎想传递一些配置值。你可以这样做:

export class TopLevelLib {
static forRoot(config: ConfigObj): ModuleWithProviders {
return {
ngModule: SampleModule,
providers: [{ provide: ConfigObj, useValue: config }]
};
}
}

然后 OtherLib 可以使用 Injector 来得到这个:
class OtherLib {
constructor(@Inject() ConfigObj) {}
...

关于angular - 使用 "forRoot"将配置数据传递给 angular 库的依赖项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53846829/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com