2017-02-24 5 views
1

ich einen Dienst für das Routingrouter.navigate ändert nicht die Hilfsroute

export class WetterRoutingService { 

    private currentUser: User; 
    private defaultAbm: Abm; 
    public rerouteToDefaultOnLoad: boolean = false; 
    constructor (@Inject(UserService) private userService: UserService, 
    @Inject(UiDataStore) private uiDataStore: UiDataStore, private router: Router) { 
     // get User Data and relevant data 
} 

Ich habe eine Funktion in diesem Dienst auf dem Weg zu bestimmten Strecken i häufig verwenden (die Verbindungen dynamisch verwendeten Änderung auf dem Benutzer basiert und Daten)

public routeToAbmAuxMaps(id) { 
    this.router.navigate([ '/start', DATA_CONSTANTS.some_constant, id, {outlets: { aux: ['maps']}}]); 
} 

I definierten die folgenden Routen:

export const ROUTES: Routes = [ 

    { 
    path: '', 
    redirectTo: '**', 
    pathMatch: 'full' 
    }, 

    { 
    path: 'start/:type/:abm', 
    component: AbmBlock, 
    canActivate: [UserService], 
    resolve: { 
     model: AbmBlockResolver 
    }, 
    }, 
    // some other routes 
    { 
    path: 'maps', 
    component: MapsDetailBlock, 
    outlet: 'aux' 
    }, 
    { 
    path: '**', 
    component: AbmBlock, 
    resolve: { 
     data: AbmBlockResolver 
    }, 
    } 
]; 

und meine Router-Filialen in die app.html

 <div class="main-container" id="main-container"> 
      <div class="main-panel"> 
       <router-outlet (activate)="onMainActivate($event)"></router-outlet> 
      </div> 
     </div> 
     <div class="detail-container" id="detail-container"> 
      <div class="detail-panel"> 
       <router-outlet name="aux" (activate)="onDetailActivate($event)"></router-outlet> 
      </div> 
     </div> 

, wenn diese Funktion jedoch aufgerufen wird, löst der Router dies in

BaseUrl/#/start/constant/id 

, was ich erwartet

BaseUrl/#/start/constant/id(aux:maps) 

Ist das ein Fehler, den ich auf GitHub veröffentlichen sollte oder habe ich einfach etwas falsch gemacht?

Angular 2.4.3 TS 2.1.5

e: Formatierung

Antwort

1

Sie sollten Ihre outlets Objekt dies ändern: (aux kein Array)

{outlets: { aux: 'maps'}} 
+0

änderte ich den Anruf zu this.router.navigate (['/ start', DATA_CONSTANTS.abm, abmId, {outlets: {aux: 'maps'}}]); macht es immer noch das Gleiche – user3548538

Verwandte Themen