我使用ng generate
创建了一个服务。我初始化了一个数组并更改了一个标志,但是当我路由到另一个页面时,该数组为空并且该标志为false。
我的服务始于
@Injectable({
providedIn: 'root'
})
我知道这会创建一个应用程序范围内的单例服务,但是到目前为止,我只在单页应用程序上使用过服务。多页应用程序/路由有何不同?
编辑:我已经尝试过将字段设为静态,但这也不起作用。
edit 2:这或多或少是我的问题:angular-7bp9kn.stackblitz.io在主页上初始化并显示(true)。导航至admin(在家庭中初始化后)并显示(false)。
答案 0 :(得分:1)
我相信(从上面的stackblitz示例中)您遇到的问题是您使用的是href
而不是routerLink="/home"
指令。而且由于href
将使用新的uri来完全重新加载页面,因此似乎很合法,因为整个应用程序都是从头开始启动的,因此将重新初始化该服务。
因此,最重要的是,如果仅将href
替换为routerLink
,则通过该应用程序只有一个服务实例。
您可以在这里angular docs
了解更多信息