Angular 7路由不适用于浏览器后退按钮(哈希更改未加载组件)

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

我在进行角路由时遇到了一种奇怪的情况。 (7.2.9-我当前的语言版本)我当前的网址是localhost:8080/en/myApp/home.html?q=name我在Angular路由中使用了哈希路由方法,我想将其附加到上述预先存在的url (localhost:8080/en/myApp/home.html?q=name#/list)

app.module.ts具有如下的appRoutes

const appRoutes: Routes = [
  { path: 'list', component: ListComponent },
  { path: 'pdp', component: ProductComponent}
];

当我进入主页时,我使用this.router.navigate方法来手动列出组件。有路由器出口,并且有下面的代码

ngOnInit(){
this.router.navigate(['/list'])
}

并且在列表组件中,我已经动态列出了锚标记

    <div class="innerclass--productImage">
       <a [routerLink]="product.productURL">
         <img src="{{product.imageURL}}">
       </a> 
    </div>

并且当我单击其中之一时,我的URL现在更改为(localhost:8080/en/myApp/home.html?q=name#/pdp).

一切似乎都工作正常,并且在单击动态列出的组件后,该产品组件已加载。

真正的问题是,当我单击浏览器的后退按钮或前进按钮并且URL更改为-时>]

localhost:8080/en/myApp/home.html?q=name#/list (loads the ListComponent), 
  or 
localhost:8080/en/myApp/home.html?q=name#/pdp (loads the ProductComponent) ` 

列表组件未显示(当使用向前或向后使用浏览器时)或未根据哈希更改呈现相应的组件

我的app.module.ts使用HashLocationStrategy导入,我只使用useHash设置为true的路由。

我在进行角路由时遇到了一种奇怪的情况。 (7.2.9-我当前的angualr版本)我当前的URL是localhost:8080 / en / myApp / home.html?q = name我在Angular路由中使用了哈希路由方法,其中...

angular typescript angular7 angular-routing
1个回答
2
投票
[不确定是否可以解决您的问题,但有一点提示。尝试检查从router.navigate解析的Promise返回的内容。
© www.soinside.com 2019 - 2024. All rights reserved.