我在谷歌上搜索了最后一天,我有一个关于angular 2中的APP_INITIALIZER的基本问题,官方网站上的文档没有解决这个问题。
APP_INITIALIZER只能在RootModule上使用,或者也可以在任何其他自定义模块上使用?
我有几个延迟加载模块,每个模块都有自己的配置。我想在加载一个延迟加载模块之前加载该模块的配置。更具体地说,我使用的是第三方库,它公开了一个服务(服务A)。该服务将ConfigA注入到其构造函数中。我使用http从服务器获取配置,并希望将其映射为将被注入到ServiceA中的ConfigA。
发布于 2017-06-17 01:12:10
APP_INITIALIZER只能在RootModule上使用,或者也可以在任何其他自定义模块上使用?
因为APP_INITIALIZER只是一个提供者,所以您可以在任何不是延迟加载的模块上注册它。
阅读更多here
发布于 2018-04-10 15:53:32
正如@yurzui提到的:在lazy模块中,使用解析器创建路由路径定义。在这个解析器类中,实现resolve函数。resolve函数可以返回Promise对象,这有助于实现初始化逻辑。
@Injectable()
export class LocalizationResolve implements Resolve<any> {
constructor(
public localizationConfig: LocalizationConfig) {
}
resolve(route: ActivatedRouteSnapshot) {
return this.localizationConfig.load();
}
}路由定义:
path: '', component: SecureComponent, resolve: { locale: LocalizationResolve }https://stackoverflow.com/questions/44594582
复制相似问题