2016-11-04 11 views
2

Как я могу перейти от ребенка:Угловой 2 навигации от ребенка к родителю

LOCALHOST/#/страницы/Config/затраченных устройство/1000

родительскому

localhost/#/pages/config/out-devices

Я пробовал:

back(){ 
    this.router.navigate("../", {relativeTo: this.route}); 
} 

в дочерних компонентах, но получить перенаправление на сайте по умолчанию

моего routing.ts

const routes: Routes = [ 
    { path: 'login', component: LoginComponent}, 
    { path: '', redirectTo: 'login', pathMatch: 'full' }, 
    { 
     path: 'pages', 
     canActivate: [AuthGuard], 
     component: PagesComponent, 
     children: [ 
      { path: '', redirectTo: 'devices'}, 
      { path: 'devices', component: DevicesComponent }, 
      { path: 'groups', component: GroupsComponent }, 
      { 
       path: 'config', 
       component: ConfigComponent, 
       children: [ 
        // general 
        { path: 'out-devices', component: ConfigOutDevicesComponent }, 
        { path: 'out-devices/:id', component: ConfigOutDeviceDetailsComponent }, 

       ] 
      } 

     ] 
    } 
]; 
+0

Как выглядят родительские маршруты? –

+0

Я добавил файл programin.ts –

+0

Какой компонент содержит метод 'back()'? –

ответ

3
this.router.navigate("../../out-devices", {relativeTo: this.route}); 
+0

im перенаправлено на localhost/#/pages/devices –

+0

Добавить 'pathMatch: 'full'' в' {path:' ', redirectTo:' devices '}, '. Все маршруты с пустым путём и без детей должны иметь 'pathMatch: 'full'' –

+1

thx он работает, когда я добавляю [] к пути' this.router.navigate (["../../ out-devices"], {relativeTo: this.route}); ' –

0

ли не выглядит, как вы собираетесь перенаправлять от ребенка к родителям, потому что оба out-devices и out-devices/:id находятся в одной и той же группе детей

children: [ 
    { path: 'out-devices', component: ConfigOutDevicesComponent }, 
    { path: 'out-devices/:id', component: ConfigOutDeviceDetailsComponent }, 
] 

Вы можете попробовать, таким образом, дочерний компонент более повторно используется, так как он использует перенаправление более свободно связанный путь.

back(){ 
    this.router.navigate("./", {relativeTo: this.route}); 
} 
Смежные вопросы