2017-01-05 2 views
7

Ich habe Sticky Routes kennengelernt, um die früheren Komponentendaten wieder zu verbinden, wenn ich zur selben Komponente zurück navigiert habe.Ich habe eine Demo implementiert, indem ich auf diesen https://www.softwarearchitekt.at/post/2016/12/02/sticky-routes-in-angular-2-3-with-routereusestrategy.aspx Blog hier gucke https://plnkr.co/edit/KVlRi9PtPeOpvn8bECBi?p=preview ... Ist es Möglich, die Anwendungsbedingungen zu haben, so dass routerreusestrategy nur für wenige Komponenten gelten?Conditionally Router-Wiederverwendungsstrategie für angular2 Routen anwenden

+0

Mögliches Duplikat von [So implementieren Sie RouteReuseStrategy shouldDetach für bestimmte Routen in Angular 2] (http://stackoverflow.com/questions/41280471/how-to-implement-routeresustrategy-shoulddetach-for-specific-routes-in-angular) –

Antwort

11

Sie benötigen nur eine geringe Änderung der ursprünglichen Lösung: https://www.softwarearchitekt.at/post/2016/12/02/sticky-routes-in-angular-2-3-with-routereusestrategy.aspx

hinzufügen shouldDetach Flagge auf Ihrer Route:

const appRoutes: Routes = [ 
    { path: 'crisis-center', component: CrisisListComponent, data: { shouldDetach: true } }, 
    ... 
]; 

Und ändern shouldDetach Methode in CustomReuseStrategy:

public shouldDetach(route: ActivatedRouteSnapshot): boolean { 
    return route.data && (route.data as any).shouldDetach; 
} 

Hier ist Ihre plocker aktualisiert: https://plnkr.co/edit/otbZBuRmGYQXeY6b4Sfp?p=preview

+1

Danke für den Tipp, dies hat mir geholfen, Conditional Route Reuse arbeiten zu bekommen! –

+0

Ich bin froh, dass es für dich funktioniert, halte ng-coding;) –