2017-06-16 57 views
3

AngularJS我们能够使用$rootScope$routeChangeStart/End事件指定路线更改事件以观察路线对象中的更改。 Angular2中的路由改变事件的等价物是什么?


我们如何能做到下面的代码这个确切的功能在Angular2

$scope.$on('$routeChangeStart', function (scope, next, current) { 
     //do what you want 
     }); 

我得到了一些disucussions这里,但没有更多的细节,所以我问了一个新问题。

import { 
    Router, ActivatedRoute, 
    NavigationEnd, NavigationStart, 
    NavigationError, NavigationCancel, 
} from '@angular/router'; 

// constructor method of some angular element 
constructor(
    private _router: Router, 
) { 
this._router.events 
      .filter(event => event instanceof NavigationStart) 
      .subscribe(event => { 
      console.log("New route"); 
      }); 
} 

编辑:

angular2 $routeChangeStart , $routeChangeSuccess ,$routeChangeError

回答

3

您可以通过执行以下听路由器的事件,我不是完全肯定的是,实际上是你所需要的,左看右看到后angularjs文档看起来像那些事件更关系到angular2的分辨率/防护结果

+0

此外,您应该在RouterModule.forRoot中启用事件 –

+0

这是什么意思? enableTracing? –

+0

是的,这是正确的 –

相关问题