首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Angular 2 APP_INITIALIZER

Angular 2 APP_INITIALIZER
EN

Stack Overflow用户
提问于 2017-06-17 01:07:20
回答 2查看 725关注 0票数 0

我在谷歌上搜索了最后一天,我有一个关于angular 2中的APP_INITIALIZER的基本问题,官方网站上的文档没有解决这个问题。

APP_INITIALIZER只能在RootModule上使用,或者也可以在任何其他自定义模块上使用?

我有几个延迟加载模块,每个模块都有自己的配置。我想在加载一个延迟加载模块之前加载该模块的配置。更具体地说,我使用的是第三方库,它公开了一个服务(服务A)。该服务将ConfigA注入到其构造函数中。我使用http从服务器获取配置,并希望将其映射为将被注入到ServiceA中的ConfigA。

EN

回答 2

Stack Overflow用户

发布于 2017-06-17 01:12:10

APP_INITIALIZER只能在RootModule上使用,或者也可以在任何其他自定义模块上使用?

因为APP_INITIALIZER只是一个提供者,所以您可以在任何不是延迟加载的模块上注册它。

阅读更多here

票数 0
EN

Stack Overflow用户

发布于 2018-04-10 15:53:32

正如@yurzui提到的:在lazy模块中,使用解析器创建路由路径定义。在这个解析器类中,实现resolve函数。resolve函数可以返回Promise对象,这有助于实现初始化逻辑。

代码语言:javascript
复制
@Injectable()
export class LocalizationResolve implements Resolve<any> {

  constructor(
    public localizationConfig: LocalizationConfig) {
  }

  resolve(route: ActivatedRouteSnapshot) {
    return this.localizationConfig.load();
  }
}

路由定义:

代码语言:javascript
复制
 path: '', component: SecureComponent, resolve: { locale: LocalizationResolve }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44594582

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档