angular - Angular 7 服务不作为单例
问题描述
我曾经ng generate
创建一个服务。我初始化了一个数组并更改了一个标志,但是当我路由到不同的页面时,数组为空并且标志为假。
我的服务从
@Injectable({
providedIn: 'root'
})
我知道这将创建一个应用程序范围的单例服务,但我之前只在单页应用程序上使用过服务。多页应用程序/路由有什么不同吗?
编辑:我已经尝试将该字段设置为静态,但也不起作用。
编辑2:这或多或少是我的问题:angular-7bp9kn.stackblitz.io在主页上初始化,并显示(真)。导航到 admin(在 home 初始化之后)并显示(false)。
解决方案
我相信(来自您上面的 stackblitz 示例)您的问题是您使用的是指令href
而不是routerLink="/home"
指令。并且由于href
将使用新的 uri 完全重新加载您的页面,因此该服务将重新初始化似乎是合法的,因为整个应用程序都是从头开始引导的。
因此,底线是,如果您只是替换href
为routerLink
,则通过该应用程序将只有一个服务实例。
你可以在这里阅读更多关于它的Angular 文档
推荐阅读
- set - CPLEX:我如何编码这个集合表达式
- python - 打印到控制台中的同一行,覆盖以前的文本,Python 3.6
- sql - 从列中提取值(xmltype)
- java - 使用 Pageable 排序时重复
- aws-lambda - AWS Lambda 如何访问本地 sql server
- xslt-2.0 - 如何删除包括第一个实例在内的重复项并仅包含唯一的非重复节点?
- c++ - 在装箱问题中找到所有可能的变化
- java - jdk1.7.0.79的ojdbc jar版本
- javascript - 何修复“else if”“”未定义?
- sql-server - 如何从 ms-sql 服务器目录中检索数据