Angular 7 服务未作为单例运行

Angular 7 service not acting as a singleton

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

我的服务开始于

@Injectable({ providedIn: 'root' })

我知道这会创建一个应用程序范围的单例服务,但我以前只在单页应用程序上使用过服务。和多页有区别吗applications/routing?

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

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

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

所以最重要的是,如果您只是将 href 替换为 routerLink,您的服务将只有一个实例通过应用程序。

您可以在此处阅读更多相关信息 angular docs