Angular在导航回来时重新加载整个应用程序(location.back)

时间:2018-05-18 08:53:21

标签: angular angular-router

我注意到location.back()正在我的StackBlitz.com英雄应用之旅中重新加载整个应用程序。

为什么会这样?

https://stackblitz.com/angular/qvvrbgrmmda?file=src%2Fapp%2Fhero-detail%2Fhero-detail.component.ts

2 个答案:

答案 0 :(得分:0)

添加

import {CommonModule, HashLocationStrategy, LocationStrategy} from '@angular/common';

  providers: [
    {
      provide: LocationStrategy,
      useClass:  HashLocationStrategy
    }
  ],

  imports: [
    CommonModule,
  // ...
你app.module.ts中的

现在,您的网址中有一个#,可防止每次您在应用内导航时应用加载整个应用的新实例。在您提出之前,摆脱#的唯一方法是通过服务器端渲染,例如使用Angular Universal您还需要使用localstorage或后端调用来保存应用程序状态,这不是一个好习惯。所以坚持#。有关详细信息,请参阅https://stackoverflow.com/a/37031886/4125622

答案 1 :(得分:0)

这是由StackBlitz提供的拆分窗格预览功能引起的; Angular教程不是问题。如果使用全窗口预览,则不会发生。因此,请单击“在新窗口中打开”以避免出现此问题。