我的路由配置如下:獲取在路由器事件的正確網址
{ loadChildren: './public#PublicModule', path: '' },
{ loadChildren: './home#HomeModule', path: 'home' },
{ path: '**', redirectTo: '/404' }
在一些模板(如果它很重要,我們稱之爲xxx.component.html)我創建了一個按鈕,使在我的404路線的一些測試:
<button type="button" routerLink="unknown">Click here for unknown</button>
有了這個,我在航線home/xxx
和後按按鈕,它的作品,我的意思是去404頁,但是,則返回以下對於m E:
NavigationEnd {id: 2, url: "/home/unknown", urlAfterRedirects: "/404"}
但我期待得到REAL以前的路線(home/xxx
),而不是URL,我在我的按鈕設置。有沒有辦法做到這一點?
PS1:我試過使用pairwise
,但它只能在調用404路由2次後才起作用。
我的404組件的樣子:
export class NotFoundErrorComponent {
public previousUrl: string;
constructor(
private router: Router
) {
this.router.events
.filter((event: any) => event instanceof NavigationEnd)
.subscribe((event: any) => {
console.log(event);
// this.previousUrl = event.url;
});
}
...
}
也許使用'NavigationStart'事件? –
@Maximus事件不是問題。我只是完全刪除了'filter',它不會返回它來自的REAL url。實際上,恕我直言,在Angular中處理路由太複雜了。像上次訪問過的路線這樣簡單的事情太過複雜了。 –