gpt4 book ai didi

Angular 4.4.6 延迟加载模块中的共享服务

转载 作者:行者123 更新时间:2023-12-02 14:09:41 26 4
gpt4 key购买 nike

我现在在谷歌上搜索了大约两周,但找不到任何适合我的问题的答案。所以我在这里问。

描述

工具:Angular 4.4.6 和 Angular-CLI 1.4.9

我正在开发相当简单的应用程序。它有 AuthModule、AdminModule、LayoutModule 和 SharedModule。如果我将所有这些模块添加到 AppModule 中,一切都会正常工作,但是问题是当我将这些模块添加到 AppModule 中时,然后我的供应商......大小远远超过 600kb (--aot)。

模块说明。

ShareModule:具有每个模块通用的一些模型和服务,例如HttpServiceAuthModule:包含使用共享模块中的HttpService的简单登录和注册组件

所以我决定将它们全部作为带有路由的延迟加载模块,如here所述。 。这将供应商...js 的大小减少了近 50%,但随后依赖项不起作用。

虽然我在 LazyLoaded 模块中引用了 SharedModule,但这仍然不能解决问题,依赖项不起作用。我知道,每个延迟加载的模块都会创建自己的 DI 树,但除了在延迟加载的模块中创建和提供的依赖项之外,它不会解析依赖项。

正如我在工具部分所说,我正在使用 Angular-CLI,它有一个很棒的功能,可以检测某些组件中使用两次的类似模块,如果是这样,那么它会为该模块创建一个公共(public)...js。但问题仍然存在,我无法访问延迟加载模块中的共享服务。

是否有可能或有人可以指导我如何在延迟加载模块中加载共享服务?

谢谢

最佳答案

如果您希望延迟加载模块中的服务可作为全局单例使用并在任何地方可用,请在 AppModule< 中实现 forRoot 并导入 MyLazyModule.forRoot()/。这样,提供程序就可以全局注册,而其余部分则延迟加载。

参见https://angular.io/guide/ngmodule#configure-core-services-with-coremoduleforroot了解更多详情。

关于Angular 4.4.6 延迟加载模块中的共享服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46994493/

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