2016-07-18 14 views
1

Ich bin gerade erst vom Router von angular2 zum Router von ngrx gewechselt. Auch ich benutze Winkel 2 rc4.Nachdem Sie auf einen Link geklickt haben, ändert sich die URL, aber die Navigation wird nicht gestartet.

meine Routen wie folgt aussehen:

export const: Routes = [ 
    {path: "appRoute1", component: "appComponent1", guards: [HashGuard, hasSelectedGuard]}, 
    {path: "appRoute2", component: "appComponent2", guards: [HashGuard, hasSelectedGuard]}, 
] 

HashGuard hat nur eine Funktion (und einen Konstruktor):

protectRoute(candidate : TravesalCandidate){ 
    if (!window.location.hash){ 
     this.router.go(HOME_ADDRESS); 
    } 
    return Observable.of(true); 
} 

ähnlich, hat HasSelectedGuard nur eine Funktion:

protectRoute(candidate : TravesalCandidate){ 
    if (!this.currentSelectionService.hasSelectedPerson()){ 
     this.router.go(HOME_ADDRESS); 
     return Observable.of(false); 
    } 
    return Observable.of(true) 
} 

Ich bin Bootstrapping was auch immer benötigt wird, wie ich sollte:

bootstrap(AppComponent, [ 
    provideRouter(routes, HashLocationStrategy), 
    Router, 
    HashGuard, 
    CurrentSelectionService 
] 

Ich habe eine sidemenu Komponente mit mehreren Links, entlang anderer Ich habe appRoute1 und appRoute2:

<a [linkTo]="'/appRoute1'"> ... </a> 
<a [linkTo]="'/appRoute2'"> ... </a> 

Wenn ich auf einen der Links als die URL Änderungen sollen, aber die Seite selbst nicht load (keine Anfragen werden nach dem Klick gesendet und der Konstruktor der Komponente ist nicht

Hilfe wird gerne angenommen.

+0

Entschuldigung, ich war verwirrt, wir verwenden ngrx-Router. –

+0

Sorry für die confustion, ich habe nach dem 'ngrx' Tag gesucht und habe es immer noch nicht gesehen: D –

+0

Editiert, um besser mein Setup zu reflektieren, danke –

Antwort

0

Ich landete schließlich auf Angulars Komponente und router.navigate([URL]).

Zum Zeitpunkt des Schreibens war NgRX-Router immer noch inkompetent.

Verwandte Themen