如何使用新的NavigationStart @ angular-router 3.0.0-alpha.*

rib*_*ies 23 typescript angular

我在新的Angular 2路由器中看到了这些新事件.

Theres NavigationStart,NavigationEnd,NavigationFailed(或类似的东西)

有谁知道如何使用这些?我已经弄乱了一些东西,但却无法让他们做任何事情.

Gün*_*uer 46

Router提供了一个events可订阅可观察到的

constructor(router:Router) {
  router.events.subscribe(event => {
    if(event instanceof NavigationStart) {
    }
    // NavigationEnd
    // NavigationCancel
    // NavigationError
    // RoutesRecognized
  }
});
Run Code Online (Sandbox Code Playgroud)

也可以看看

注意

不要忘记NavigationStartrouter模块导入

import { Router, NavigationStart } from '@angular/router';
Run Code Online (Sandbox Code Playgroud)

因为如果你不导入它将instanceof无法正常工作,错误NavigationStart is not defined将会增加.


小智 7

像这样

 constructor(
  private router:Router
 ){}
 this.router.events
  .filter(event=> event instanceof NavigationStart)
  .subscribe((event:NavigationStart)=>{
     // TODO
  });
Run Code Online (Sandbox Code Playgroud)

  • 您需要导入过滤器运算符,否则您将收到此错误.`import'rxjs/add/operator/filter'` (2认同)