10
votes

@ angular / routeur 3.0.0-alpha.3: Comment migrer suractivate

Je viens de mettre à niveau @ angular / routeur sur 3.0.0-alpha.3. Cependant, je ne trouve pas l'interface onactivate qui était disponible en 2.0.0-RC.1. Tout indice est apprécié.


0 commentaires

3 Réponses :


8
votes

Puisque nous n'avons pas encore de documentation et que nous arrivons dans les semaines suivantes. Vous vouliez un indice. Voici ce que j'ai trouvé pour vous. On dirait que vous devez transmettre un paramètre supplémentaire et spécifier une classe pour gérer les crochets de cycle de vie?

import { Injectable }    from '@angular/core';
import { CanDeactivate } from '@angular/router';
import { Observable }    from 'rxjs/Observable';

import { CrisisDetailComponent } from './crisis-detail.component';

@Injectable()
export class CrisisDetailGuard implements CanDeactivate<CrisisDetailComponent> {

  canDeactivate(component: CrisisDetailComponent): Observable<boolean> | boolean {
    return component.canDeactivate();
  }
}


1 commentaires

Néanmoins "canactiver" devrait être l'endroit où mettre la logique "sur l'activation". Je ne peux pas le mettre dans Oninit non plus, car cela pourrait être réutilisé !!



1
votes

Il y a le guide de routeur pour le V3 comme alpha disponible https: // angulaire. IO / DOCS / TS / DERNIÈRE / GUIDE / ROUTER.HTML , qui devrait les expliquer.

Si vous allez à https: //angular.io/docs/ts/latest/Guide/Router.html#!#milestone-4-Quisery-paramètres et défilement légèrement en hausse, il y a un exemple qui devrait le démontrer :)


0 commentaires

1
votes

Personnellement, je ne suis pas convaincu que le canactivate et la désactivation des gardes sont les meilleurs endroits pour migrer la logique d'onactivation qui n'est pas une garde d'une sorte.

Peut-être que les nouveaux événements de routeur sont une meilleure option: Comment utiliser NavigationStart


0 commentaires