2017-06-16 2 views
3

Dans AngularJS nous avons été en mesure de spécifier l'événement de changement d'itinéraire pour observer les changements dans l'objet route en utilisant l'événement $routeChangeStart/End du $rootScope. Quel est l'équivalent de l'événement de changement d'itinéraire dans Angular2?


comment pouvons-nous faire cette fonctionnalité exacte code ci-dessous dans Angular2

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

Je suis arrivé quelques disucussions ici, mais il ne pas avoir plus de détails, je pose une nouvelle question.

angular2 $routeChangeStart , $routeChangeSuccess ,$routeChangeError

Répondre

3

Vous pouvez écouter les événements du routeur en procédant comme suit:

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"); 
      }); 
} 

EDIT: Je ne suis pas complètement sûr est que est en fait ce que vous avez besoin, après avoir pris un regard plus proche de la angularjs docs semble que ces événements sont plus liés à la résolution/résultat d'un garde en angulaire2

+0

aussi, vous devez activer les événements dans le RouterModule.forRoot –

+0

que voulez-vous dire? enableTracing? –

+0

ouais, c'est vrai –