返回页面时,Angular 2重定向URL

时间:2017-09-02 14:34:36

标签: angular routing

我有一个Angular 2页面,它有这种类型的路由模型:

const routes: Routes = [
   { path: '', pathMatch: 'prefix', redirectTo: 'announcement' },
   { path: 'announcement', component: AnnouncementComponent },
   { path: 'important-documents', component: ImportantDocumentsComponent },
   { path: 'reservations-and-orders', component: ReservationsAndOrdersComponent},
   { path: 'contact', component: ContactComponent },
   { path: '**', redirectTo: 'announcement'}
 ];

当我在我的ImportantDocumentsComponent中打开一个pdf文件,之后尝试通过按浏览器中的后退按钮返回上一页时出现问题。该页面通知我在此服务器中找不到请求的URL。我认为这是因为实际上角度页面只有一个URL,浏览器正在尝试加载页面url + path。我以为我可以解决这个问题:

 { path: '**', redirectTo: 'announcement'}

但它似乎没有做到这一点。

我想知道如何防止此类网址错误发生,以便浏览器在返回时重定向到正确的网址。

事先已经感谢了。

1 个答案:

答案 0 :(得分:5)

位置服务和“后退”功能应该完成工作。应在旧版Angular 2中从“angular2 / router”导入定位服务。对于较新的“@ angular / common”。以下是表格中有后退按钮的情况。

zip test.zip test.png test2.png

如果在webbrowser上单击后退按钮,请使用PlatformLocation,然后您可以定义 onPopState

['1','2','3','4','5']