Angular 7服务不充当单例

时间:2018-12-12 20:10:06

标签: angular typescript service singleton

我使用ng generate创建了一个服务。我初始化了一个数组并更改了一个标志,但是当我路由到另一个页面时,该数组为空并且该标志为false。

我的服务始于

@Injectable({ providedIn: 'root' })

我知道这会创建一个应用程序范围内的单例服务,但是到目前为止,我只在单页应用程序上使用过服务。多页应用程序/路由有何不同?

编辑:我已经尝试过将字段设为静态,但这也不起作用。

edit 2:这或多或少是我的问题:angular-7bp9kn.stackblitz.io在主页上初始化并显示(true)。导航至admin(在家庭中初始化后)并显示(false)。

1 个答案:

答案 0 :(得分:1)

我相信(从上面的stackblitz示例中)您遇到的问题是您使用的是href而不是routerLink="/home"指令。而且由于href将使用新的uri来完全重新加载页面,因此似乎很合法,因为整个应用程序都是从头开始启动的,因此将重新初始化该服务。

因此,最重要的是,如果仅将href替换为routerLink,则通过该应用程序只有一个服务实例。

您可以在这里angular docs

了解更多信息
相关问题