2016-09-08 3 views
6
const APP_ROUTES: RouterConfig = [ 

    { 

     path: 'app/home', 
     component: HomeComponent, 
     data: { 
      name: 'Home' 
     } 

    } 


] 

위와 같이 표시된 경로 구성이있는 경우 일부 지시문에서 해당 경로의 data 속성에 액세스하는 방법은 무엇입니까? hello 지침에angular2의 지침에서 경로 데이터에 액세스하십시오.

@Directive({ 
    name: 'hello' 
}) 

class HelloDirective { 
@Input('routerLink') link: string[]; 

ngOnInit() { 
    //HOW CAN I GET ROUTE AND ITS DATA FROM PATH/URL ??? 

    //const magicallyGrabbedRoute = pleaseGiveMeMyRouteFrom(this.link); 
    //const myData = magicallyGrabbedRoute.data; 

} 

} 

<a hello [routerLink]="['app/home']"> Go Home </a> 

은 내가 어떻게 routerLink 속성의 값에 대한 경로 구성을받을 수 있나요?

+0

@ Lekhnath에 대한 해결책을 찾으셨습니까? – Spikeh

+0

@ Spikeh 슬프게도 나는 이것에 대한 해결책을 찾지 못했습니다. – Lekhnath

답변

1

경로 매개 변수를 Component 클래스에 배치하여 구독 할 수 있습니다. &는 또한 경로 해상력에 전달 된 데이터를 검색 할 수 this.route.snapshot.data를 사용할 수 생성자

this.sub = this.route 
    .params //.data //--> use data to retrieve route data 
    .subscribe(params => { 
    console.log(params['id']); 
    }); 

private route: ActivatedRoute 있습니다.

+0

이 대답은 내 문제를 해결하는 데 부족합니다. 어떤 서비스에 어떤 링크를 제공하여 라우트/routeConfiguration/routeData를 제공합니다. 현재/활성화 된 경로뿐만 아니라 모든 링크가 될 수 있습니다. – Lekhnath

+0

어디에서'RouteData'를 찾을 수 있습니까? @ angle/router @ 3.0.0-beta.2'에 없습니까? – Lekhnath

+1

'params'는'data'로 변경되어야합니다. – mrgoos

5

(RC6는) :

다음

import { ActivatedRoute } from '@angular/router';

생성자에 : 당신은 가져올 필요

constructor(private route: ActivatedRoute) { }

클래스해야 implements OnInit이 방법 :

ngOnInit() { const myData = this.route.snapshot.data['name']; }

URL이 동적이지 않은 경우입니다. 동적 인 경우 옵저버를 사용해야하며 스냅 샷은 사용하지 않아야합니다. p.s. 부모님의 부모님은 다음을 사용하십시오 : this.route.snapshot.parent.data['name']

+0

활성화 된 경로 데이터에 액세스하는 데 사용할 수 있지만 일부 경로 구성 요소에서 활성화 된 경로 데이터를 얻으려고하지 않고 대신 일부 링크에서 경로 데이터를 가져 오려고합니다. [ 'app/home']. – Lekhnath

+0

글쎄, 부모 중 하나라면'this.route.snapshot.parent.data [ 'name']'을 제안대로 사용할 수 있습니다. 그렇지 않은 경우 https://angular.io/docs/ts/latest/cookbook/component-communication.html에서 제안 된 다른 구성 요소 통신을 사용할 수 있습니다. 최고는 서비스 IMO를 통해 이루어질 수 있습니다. – mrgoos

+2

'ngOnInit' 라우트 메소드에서'routerLink' 속성 값을 얻는 방법을 살펴보고 그 값에 따라 링크/경로를 맵핑하는 라우트 구성의 별명을 원합니다. – Lekhnath

관련 문제