我在Angular 2.0中有一个特殊的情况,有路由
我不想重复导航。即如果用户前往页面a - >然后转到第b页>然后再次转到页面a->然后转到第c页,当用户按下后退按钮时,应将用户重定向到第b页而不是第a页。 我想要实现的是多次按下后退按钮不应多次显示同一页面。 因此,如果我执行> b> c> a> c> b> a> c> b> a然后开始按下:页面a,b,c应该只出现一次&不基于常规浏览器行为。
成功登录后,如果我按下后退按钮,则登录界面不应该出现,而是应该退出或者像空白网址而不是登录网址。
有任何建议如何实现吗?
我应该使用NavigationStart/NavigationEnd
&把我的逻辑写在那里?
答案 0 :(得分:2)
我通过编写自己的LocationStrategy来解决以下问题
@Injectable()
export class TestClass implements LocationStrategy {
path(includeHash?: boolean) : string{
//write my own logic here
}
pushState(state: any, title: string, url: string, queryParams: string) : void{
console.log("push state called");
//write my own logic here
}
}
在我的app.module.ts
中 {provide:LocationStrategy,useClass:TestClass },
这样我就能达到我的要求。