gpt4 book ai didi

Angular 6 创建单例服务

转载 作者:太空狗 更新时间:2023-10-29 17:18:46 26 4
gpt4 key购买 nike

我知道 Angular 6 在创建单例服务的方式上发生了一些变化。我有一个 Auth 服务,需要为访问它的每个组件构建一次。我将服务提供者设置为 root:

@Injectable({
providedIn: 'root'
})

在我的 app.module.ts 文件中,我将 AuthService 设置为我在 NgModule 中的提供者之一。但是,每当我在使用 Auth 服务的不同组件之间进行路由时,它都会创建一个新的 Auth 服务实例(从第一次调用时清除数据)。如何确保 Auth Service 仅实例化一次,然后在不同组件之间访问该实例?

最佳答案

这是将 providedIn 添加到服务级别的默认行为。根据 Docs

providedIn here tells Angular that the root injector is responsible for creating an instance of the HeroService. Services that are provided this way are automatically made available to the entire application and don't need to be listed in any module.

在您的情况下,只需删除 providedIn: 'root' 并且仅在 module.ts 中提供 under provides。引用以下 answer .

关于Angular 6 创建单例服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51276223/

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