2016-08-25 31 views
6

Dokümantasyon çok iyi değil, aynı sayfada/rotada farklı yönlendirici çıkışlarına sahip olmaya çalışıyorum.Köşeli Yönlendirici - Yönlendirilmiş çıkışlar

ben değil, "örnek (yani "example.com" Yani benim başlangıç ​​sayfam benim app.component.html içinde

<router-outlet></router-outlet> 
<router-outlet name="dashboard"></router-outlet> 

Benim app.routes.ts

{ 
    path: '', 
    component: HomeComponent, 
    outlet: 'primary' 
}, 
{ 
    path: '', 
    component: DashboardComponent, 
    outlet: 'dashboard' 
}, 
{ 
    path: '**', 
    redirectTo: '404' 
} 

bu var. com: pano: dashboard ") Ana bilgisayar bileşenini birincil yönlendirici çıkışında ve Pano çıkışında Gösterge Tablosu bileşenimi göstermek istiyorum. Bu, ngrs/yönlendirici ile çalıştı, ancak kullanımdan kaldırıldığından geçiş yapmaya çalışıyorum. Pano: gösterge panosu olmadan açısal/yönlendirici olmadan mümkün mü?

{ 
    path: '', 
    component: HomeComponent, 
    children: [ 
     { 
      path: '', 
      component: DashboardComponent, 
      outlet: 'dashboard' 
     } 
    ] 
}, 

kimse adında yönlendirici çıkışları çalışma başardı mı:

Ben 404. yönlendirildi beeing am Bu yapılandırma ile

Ben de hiç şans ile bu denediniz mi? açısal/yönlendiriciye ngrx/yönlendiriciden göç notlarına ilişkin

GÜNCELLEME buna sahip mümkün olmalıdır:

{ 
    path: 'blog', 
    component: HomeComponent, 
    outlet: 'main' 
}, 
{ 
    path: 'blog', 
    component: RegisterComponent, 
    outlet: 'dashboard' 
} 

Ama example.com/blog giderken, bu alın konsolda hatası:

Error: Cannot match any routes: 'blog'

https://github.com/ngrx/router/blob/master/docs/overview/migration.md

+0

Üzgünüm, ama Plunker çok fazla kod içeriyor. –

+0

Evet, ama bunu yapmanın mümkün olup olmadığını biliyor musunuz? URL'de bir sürü şey olmadan. Başlangıç ​​sayfasında 4 yönlendirici çıkışı varsa, url'nin şu şekilde görünmesini istemiyorum: example.com (gösterge tablosu: dashcmp) (menü: troll) (altbilgi: extralongfooter) vb. – Kungen

+0

Bu parçaları URL’de göstermenin yolu. –

cevap

3

bu yapılandırmayı deneyin:

{ 
    path: 'wrap', 
    component: HomeComponent, 
    children: [ 
     { 
      path: 'dash', 
      component: DashboardComponent, 
      outlet: 'dashboard' 
     } 
    ] 
} 

ile: ...

ve diğerleri (ekledim "wrap" gibi) bir URL parçasını ihtiyacı neden

this.router.navigateByUrl('/wrap(dashboard:dash)'); 

Bilmiyorum ama çalışır:

{ 
    path: 'blog', 
    component: HomeComponent, 
    outlet: 'main' 
}, 
{ 
    path: 'blog', 
    component: RegisterComponent, 
    outlet: 'dashboard' 
} 

ile:

this.router.navigateByUrl('/(main:blog)'); 
this.router.navigateByUrl('/(dashboard:blog)'); 
+0

benim için ork yapmadı. Bir plunker –

+2

[Bu Plnkr deneyin] (http://embed.plnkr.co/c9IgBZ/) –

+0

plunker için teşekkür etmek mümkün olurdu. şimdi benim için çalışıyor. Bunu, this.router.navigate() yönteminde yapmak istiyorum. aynı şeyi yapabilir miyim? –

0

Bu ben işe gitmek için kullanarak sona erdi budur:

 this.router.navigate([{ outlets: { detail: ['summary'] } }], 
          { skipLocationChange: true, relativeTo: this.route }); 

Not: Ben ana yolu için bir '' yok. Ana yol olarak '' ile ilgili birtakım github sorunları var gibi görünüyor, ancak uyguladıklarından emin değiller.

İlgili konular