我有一个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'}
但它似乎没有做到这一点。
我想知道如何防止此类网址错误发生,以便浏览器在返回时重定向到正确的网址。
事先已经感谢了。
答案 0 :(得分:5)
位置服务和“后退”功能应该完成工作。应在旧版Angular 2中从“angular2 / router”导入定位服务。对于较新的“@ angular / common”。以下是表格中有后退按钮的情况。
zip test.zip test.png test2.png
如果在webbrowser上单击后退按钮,请使用PlatformLocation,然后您可以定义 onPopState 。
['1','2','3','4','5']