如何在页面刷新时重置路由器?

时间:2016-10-24 23:51:16

标签: angular angular2-routing

如何强制导航到' / splash'页面刷新路由?

如果我发现自己在' /发现'并刷新它将保留在那里的页面,但是我更喜欢应用程序从头开始(/ splash)。

router.navigate

我试图在我的父AppComponent的OnInit&内进行OnDestroy次呼叫。 ngOnInit( ) : void { this.router.navigate(['splash']); } 方法,但它似乎被忽略了。

OnDestroy

我还试图将导航调用放在路由器本身的using System.IO;方法中。

1 个答案:

答案 0 :(得分:2)

您可以通过订阅AppComponent构造函数中路由器的第一个导航事件来完成此操作:

    import 'rxjs/add/operator/filter';
    import { Router, NavigationStart } from '@angular/router';

    export class AppComponent {
      private subscription: any;

      constructor(private router: Router) {
        this.subscription = this.router.events
          .filter(e => e instanceof NavigationStart && e.id === 1)
          .subscribe(e => {
            this.redirectToSplash();
          });
      }

      private redirectToSplash() {
        this.router.navigate(["splash"]);
        this.subscription.unsubscribe();
      }
    }