2017-04-17 1 views
0

나는 꽤 혼란스러운 결과를 얻고 있으며, 무슨 일이 일어나고 있는지 확실하지 않습니다. 나는 이것이 엄격하게 자바 문제라고 생각하지만, 나는 그렇지 않다.개체에 데이터가있는 속성이 표시됩니다. 속성이 공백으로 표시됩니다.

나는 루트 확인자에서 데이터를 검색하려고 시도하고있는 CanActivate 가드가 있습니다.

canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable<boolean> { 
    this.userService.watchCurrentUser().subscribe((currentUser: User) => { 
     console.log(route, route.data); 
    }); 
    return Observable.of(true); 
} 

다음과 같이 데이터가 나타납니다 :

그것을보고 조금 어렵다지만
ActivatedRouteSnapshot {url: Array(2), params: Object, queryParams: Object, fragment: null, data: Object…} Object {} 

, 당신은 데이터 객체 스냅 샷 내에 존재 볼 수 있습니다, 그리고 그것을 확장하는 경우, 모든이있다 내가 기대하는 데이터. 그러나 로그에 route.data을 기록하면 개체가 비어 있음을 알 수 있습니다. 나는 이유를 알 수 없으며 왜 디버깅해야할지 모르겠다.

+0

겉으로보기에 빈 개체를 확장 해 보았습니까? – Thomas

+0

@ 토마스 그래, 나는 그것이 비어 있기 때문에 그것은 실제로 빈 개체라고 말했다. 확장 된, 그것은 단지 빈 객체처럼 프로토 타입을 포함합니다. – RhoVisions

답변

0

데이터는 라우트 구성에서 정적으로 정의한 오브젝트입니다. 예를 들어, 데이터 obj에서 제목을 사용하여 페이지 제목이 경로에 따라 달라지는 것을 동적으로 표시하고 각 경로에는 자체 데이터 객체가 있습니다.

const routes: Routes = [ 
{ 
    path: 'path', 
    component: ContainerComponent, 
    canActivate: [AuthGuard], 
    data: {title: 'My Chart'} 
}, 
.... 
] 
+0

앞에서 언급했듯이 경로를 기록 할 때 data 속성에는 예상 한 값이 들어 있습니다. route.data를 기록 할 때, 그것은 빈 객체로 나타난다. – RhoVisions

관련 문제