首页 > 解决方案 > 为什么更改路线时不保存服务数据?

问题描述

我是 Angular 的新手,我尝试构建一个小应用程序。我有这个服务,它拥有一个变量和一个函数:

数据服务.ts

data = [];
getData() {
  this.http.get(url).subscribe((res)=>
  this.data.push(res));
};

我也有两条路线:

app.module.ts(服务定义在这里)

import { DataService } from './data.service';
// ...
const appRoutes = [
  { path: 'home', component: HomeComponent },
  { path: 'settings', component: SettingsComponent }
]
    
@NgModule({
  // ..
  providers: [DataService],
  // ..
})

当我在 homeComponent 中使用 getData 函数时,它工作正常,并且响应被添加到数据数组中。但是 - 问题是 - 一旦我导航到第二条路线,服务中的数据又回到了一个空数组。

我会认为当我导航时该服务没有被“重新启动”。

那么,问题是什么?谢谢你。

标签: angularangular-services

解决方案


从不同的方向发现并解决了问题。

我用作<a href="/">路由的链接,这可能会导致应用程序在每次单击时自行重新启动。<a routerlink="/">解决问题。


推荐阅读