2016-07-06 2 views
1

시작시 AppComponent에서 다른 경로를 탐색하려고하는데 작동하지 않는 것 같습니다. 내 app.component, 나는 내 ngOnInit 방법을 탐색하려고 : 내 main.ts에서각도 2 - 부트 스트랩을 탐색하는 방법?

export class AppComponent implements OnInit { 

    constructor(private _router: Router) { 
    } 

    ngOnInit() { 
     console.log("IN ngOnInit!!!!!!!!!!!!!!!!!!!!"); 
     this._router.navigate(["/login"]).then(() => console.log("DONE Navigation!!!!!!!!!!!!!!!!!!!!")).catch(err => console.log("Error!!!!!: " + err)); 
     console.log("GOING OUT ngOnInit!!!!!!!!!!!!!!!!!!!!"); 
    } 
} 

, 내가 구성 요소 부트 스트랩 :

bootstrap(AppComponent, [ 
    APP_ROUTER_PROVIDERS 
]).then(() => console.log("DONE BOOTSTRAP")); 

그리고 콘솔 출력은 다음과 같습니다

IN ngOnInit!!!!!!!!!!!!!!!!!!!! 
GOING OUT ngOnInit!!!!!!!!!!!!!!!!!!!! 
DONE Navigation!!!!!!!!!!!!!!!!!!!! 
DONE BOOTSTRAP 

내 생각 엔 부트 스트랩이 APP_ROUTER_PROVIDERS에 대해 완료되지 않았기 때문에 내비게이션을 수행 할 수 없다고 생각합니다. 부트 스트랩이 완료된 후에 탐색 할 수 있도록 연결할 수있는 이벤트가 있습니까? 저는 Angular 2 RC4에 있습니다.

미리 감사드립니다.

답변

1

주 구성 요소의 OnInit에서 네비게이션 기능을 호출 할 수 없습니다. 이것은 문제가 GitHub의에서 열려 열고있다이 https://github.com/angular/angular/blob/master/modules/@angular/router/src/common_router_providers.ts#L54-L61

에 의해 버그 원인에 기인한다 : https://github.com/angular/angular/issues/9101

순간을 위해, 빠른 수정은 setTimout() 기능에 탐색 전화를 넣어하는 것입니다.

+0

정보를 제공해 주셔서 감사합니다! –

+0

나는 네비게이션 경로를 결정하기 위해 약간의 로직을 수행 할 필요가 있기 때문에 이것을 대답으로 선택했다. –

2

이상적으로는 각도 라우터 자체로 리디렉션해야합니다. 구체적인 경로가 일치하지 않을 경우 (공백)을 /login 페이지로 리디렉션 할 책임이있는 경로를 하나 추가합니다.

{ 
    path: '', //blank will redirectTo `/login` 
    redirectTo: '/login', 
    pathMatch: 'full' 
}, 
+0

감사합니다. 그것은 내가 원하는 행동입니다! –

+0

@wm_ 감사합니다. 감사합니다 .-) –

관련 문제