单击浏览器的后退按钮时不会重新加载组件-Angular

问题描述 投票:-1回答:1

我正在使用Angular 8.x在新闻网站上工作从主页上,当用户向下滚动页面并单击新闻链接时,会将用户带到新闻详细信息页面。现在,单击“浏览器”的后退按钮,用户进入“主页”页面,但是该页面正在重新加载并滚动到顶部。如何防止单击“后退”按钮重新加载主页?

javascript angular browser reload back-button
1个回答
0
投票

您可以创建服务,并且在您第一次从api获取数据时将其缓存在服务中的变量中。

下次重新加载新闻列表组件时,将从服务变量中进行检查。如果找不到,则通过服务变量获取api调用。

类似的东西。

export class NewsService {
  newsList: News[];

  getSupportedBrowsers(): Observable < SupportedBrowser[] > {

    if (this.newsList) {
      return new Observable < News[] > ((subscriber: Subscriber < SupportedBrowser[] > ) => subscriber.next(this.newsList));
    }

    return this.http.get('url').map(response => {
      this.newsList = response.json();
      
      return this.newsList;
    });
  }
}
© www.soinside.com 2019 - 2024. All rights reserved.