Angular 2.0中的路由策略。我可以保留自己的历史堆栈吗?

时间:2016-12-18 05:45:17

标签: angular angular2-routing

我在Angular 2.0中有一个特殊的情况,有路由

  1. 我不想重复导航。即如果用户前往页面a - >然后转到第b页>然后再次转到页面a->然后转到第c页,当用户按下后退按钮时,应将用户重定向到第b页而不是第a页。 我想要实现的是多次按下后退按钮不应多次显示同一页面。 因此,如果我执行> b> c> a> c> b> a> c> b> a然后开始按下:页面a,b,c应该只出现一次&不基于常规浏览器行为。

  2. 成功登录后,如果我按下后退按钮,则登录界面不应该出现,而是应该退出或者像空白网址而不是登录网址。

  3. 有任何建议如何实现吗?

    我应该使用NavigationStart/NavigationEnd&把我的逻辑写在那里?

1 个答案:

答案 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 },

这样我就能达到我的要求。