发现问题情况:

两个module中,想要共享srvice中的变量,A中变量赋值之后,在B中的提取变量只会提取到undefined,
查找资料可以找到相关给service添加域值,

  • Set the providedIn property of the @Injectable() to “root”.

将注解修改为@injectable({providedIn:’root’}),但是只加这一项问题还是存在。查询官方文档后给出答案

回答:

image.png
两种方法,单service引入和module引入
Service引入:如果只是单个的service,只需要在appModule引入,然后再把service注解修改为@injectable({providedIn:’root’}),即可
Module引入,在项目根目录创建单独的module,同样需要单独引入到AppModule中,service中注解添加root

总结:

分别引入会产生多个实例,重新进入另外一个Module,会重新实例化这个service,所以在appModule中引入即可,AppModule是会一直存在的,不刷新页面,AppModule不会重新实例化