2016-11-28 1 views
0

나는 방문 페이지를 가지고 있습니다. 방문 페이지에서 router.navigate ([./ app-login])를 사용하여 로그인 구성 요소를로드해야합니다. 로그인 성공 후 동일한 방문 페이지에서 router.navigate를 사용하여 대시 보드 구성 요소를로드해야합니다. 이벤트 발생기없이 로그인 성공을 착륙시키는 방법은 무엇입니까?이벤트 Emmiter를 사용하지 않고 각도 2의 부모와 의사 소통

내 목표는 방문보기 자체에서 router.navigate를 사용하여 로그인 및 대시 보드보기를로드하는 것입니다. 이것이 가능한가 또는 올바른 접근인가? 공유하시기 바랍니다 다른 방법이 있다면 ..

landing.component.ts

ngOnInit() { 
    //directly navigate to login if token expired/first login 
    this.router.navigate(['/app-login']); 
} 

loadDashdoard(){ 
    //load dashboard on success login 
    this.router.navigate(['/app-dashboard']); 
} 
+1

https://angular.io/docs/ts/latest/cookbook/component-communication.html#!#bidirectional-service –

답변

0

당신은 각 라우터를 사용하는 것이 할 수 있습니다. 부모/자식 문제를 해결합니다.

<h1>My Landing Page</h1> 
    <nav> 
    <a routerLink="/login" routerLinkActive="active">Login</a> 
    </nav> 
    <router-outlet>Your landing page/Login content will go here</router-outlet> 

<router-outlet> 태그를 참조하십시오

이 방문 페이지 말할 수 있습니다? 여기서 라우팅 된 콘텐츠가 라우팅에 의해로드됩니다.

는 메인 랜딩 페이지의 자식으로 상륙 페이지의 콘텐츠를 모두하고 로그인 구성 요소를 구성해야합니다, 귀하의 경우에는

https://angular.io/docs/ts/latest/guide/router.html를 참조하십시오.

const landingPageRoutes: Routes = [ 
    { 
    path: 'landing-page', 
    component: LandingPageComponent, 
    children: [ 
     { 
     path: '', 
     component: LandingPageContentComponent    
     }, 
     { 
     path: 'login', 
     component: LoginComponent    
     }, 
    ] 
    } 
]; 

대시 보드에는 별도의 라우터가 필요합니다. 각도 응용 프로그램 내부의 각 기능 그룹에 대해 별도의 라우터를 갖는 것이 좋습니다. 그리고 이것으로 DashboardRouter를 말하면 CanActivate 속성을 AuthGuard로 설정해야합니다. AuthGuard는 응용 프로그램의 인증 작동 방식을 구현하기 위해 구현해야합니다.

난 당신이 오른쪽 지점을 가지고 추측 https://angular.io/docs/ts/latest/guide/router.html#guards

보기?

어쨌든, 앵글은 라우터와 경비원 주위에 좋은 문서를 가지고 있습니다. 그것은 당신의 문제를 해결하기 위해 따라야 할 길입니다.

관련 문제