2016-08-24 3 views
0

Ich versuche gerade, schöne Routen in meiner Anwendung zu bekommen, aber in meiner aktuellen Implementierung muss ich alle Parameter in meinem Routenabonnement abrufen und überprüfen. Gibt es eine Möglichkeit, einen "statischen" Parameter wie employees oder departments von der Route zu bekommen, die ich früher unterscheiden kann, anstatt alle Parameterwerte für jede Möglichkeit zu überprüfen?
Ich bin auch offen für Verbesserungen, wenn eine meiner Routen unlogisch oder einfach falsch ist.Angular2 Hot, um alle Parameter von der URL zu erhalten?

export const EmployeeManagementRoutes: RouterConfig = [ 
{ 
path: 'employee-management', 
component: EmployeeManagementComponent, 
children: [ 
    //display all employees 
    { 
    path: '', 
    //is there any way to make this redirict relative to the component the router is for? 
    redirectTo: '/employee-management/employees/department/all', 
    pathMatch: 'full' 
    }, 
    //display all employees from a specific department 
    { 
    path: 'employees//department/:department', 
    component: EmployeeManagementTableComponent 
    }, 
    //open dialog for deleting or creating a new employee or  
    if option is 'show' and id is not undefined show a specific employee 
    { 
    path: 'employees/action/:option/:id', 
    component: EmployeeManagementTableComponent 
    }, 
    //display all departments 
    { 
    path: 'departments', 
    component: EmployeeManagementTableComponent 
    }, 
    //open dialog for deleting or creating a new department 
    { 
    path: 'departments/action/:option', 
    component: EmployeeManagementTableComponent 
    }, 

] 
} 
]; 

Antwort

3

Sie können die ActivatedRoute verwenden. Es ist nicht nur für Params. Etwas wie:

ngOnInit() { 
    let path = this.route.url.value.map(val => val.path); 
    } 

wird Ihnen die Teile der URL als String-Array geben. Zum Beispiel ["employees","department","management"].

+0

Vielen Dank. Genau das habe ich gesucht. – moessi774

1

Parse Ihre URL wie folgt aus:

import { Component, OnInit } from '@angular/core'; 
import { Router } from "@angular/router"; 

export class TopNavigationComponent implements OnInit { 
    constructor(
    private router: Router 
) {} 
    ngOnInit() { 
    let parsedUrl = this.router.parseUrl(this.router.url); 
    console.log(parsedUrl); 
    } 
} 

In dem empfangenen Objekt wird die analysierte URL befindet sich unter: Wurzel-> Kinder-> Primar-> Segmente

Sie können mehr lesen rechts here

Verwandte Themen