2017-02-17 14 views
5

Uygulamamın kullanıcılarının istedikleri zaman varsayılan rotayı değiştirmelerine izin vermeliyim: Oturum açarken ilk önce göstermek istedikleri "sayfayı" seçebilecekleri bir parametre sayfam var. Şimdilik Exemple için Köşeli 2 dinamik olarak varsayılan rotayı değiştir

, onlar oturum açtıklarında Günü yönlendirme, ancak bunlar bunu değiştirmek ve isterlerse, oturum açtıklarında haftanın veya ayın üzerinde yönlendirmek olmak isterler.

{ path: 'planification', component: PlanificationComponent, 
    children: [ 
    { path: '', redirectTo: 'Day', pathMatch: 'full' }, 
    { path: 'day', component: DayComponent }, 
    { path: 'week', component: WeekComponent }, 
    { path: 'month', component: MonthComponent }] 
} 

Bunu nasıl yapabilirim? açısal/çekirdek @

: 2.4.7

açısal/yönlendirici @: Yardımlarınız için 3.4.7

teşekkürler!

{ path: '', canActivate: [UserSettingsGuard], redirectTo: 'Day', pathMatch: 'full' } 

Ve kutu şöyle korumak:

@Injectable() 
export class UserSettingsGuard implements CanActivate { 
    constructor(private router: Router) { } 

    canActivate() : boolean { 
    var user = ...; 

    if(user.defaultPage) { 
     this.router.navigate([user.defaultPage]); 
    } else { 
     return true; 
    } 
    } 
} 

Yani yeni url zaman geçebilir navigasyon gerçekleşmeden önce

cevap

5

Aslında url düzeltmek için yönlendirmek için bu gardiyanlardan kullanabilirsiniz geçersiz sayfa olan kullanıcı var veya bunun yerine varsayılan akışı kullan.

+0

Bu çözümü açısal 2.4 ile çalışmak mümkün değildi. Yolu ve bileşeni belirtmem gerekiyordu. –

+1

Eğer 'children: [] 'eklerseniz, çalışmalı ve bir bileşen belirtmeniz gerekmeyecek. – Compeek

+0

Kullanıcının bir dizi rotaya yönlendirilebileceği bir durum var (görünümde sekmeler olarak görüntülenecek) ve bunlardan ilki varsayılan olarak yönlendirilmelidir. Bu nasıl yapılır? – karthikaruna