2017-04-06 1 views
2

내 2 각도 프로젝트에서 동일한 URL로 이동하여 다른 쿼리 매개 변수를 사용하여 페이지를 다시로드 할 수 없었습니다. 페이지를로드 할 때을 으로 미리 가져 와서 데이터를 미리 가져옵니다.쿼리 매개 변수 변경시 데이터를 다시 분석 하시겠습니까?

URL (쿼리 매개 변수)이 변경되면 리졸버가 데이터를 다시 가져 오려고합니다. 어떻게해야합니까?

답변

0

변경된 queryParam을 가져올 수 없다고 생각합니다. 이것이 당신을 도울 지 모르지만 여기에 제 대답입니다.

construtor(private route: ActivatedRoute) { } 

ngOnInit() { 

    this.route.snapshot.queryParams['something'];//when you snapshot and navigate to same url you can't get new query params, only for first initialization 

    // to get new queryparams or url params also you need subscribe (for same url navigation) 

    this.route.queryParams.subscribe({ 
     (queryParams: Params) => { 
      this.yourParam = queryParams['something']; 
     } 
    }) 
} 

나는 Observable queryParams 대신 snapshot을 사용한다고 생각합니다.

0

지금 당신은 당신의 경로 설정이 함께 할 수

{ 
    path: '', 
    resolve: { 
    data : DataResolver, 
    }, 
    runGuardsAndResolvers: 'paramsOrQueryParamsChange', 
    component: MainComponent 
} 

이 경로의 설정에서 'paramsOrQueryParamsChange'을 통과 각 PARAMS 또는 queryParams 변화에 DataResolver을 트리거합니다.
이처럼 MainComponent의 리졸버 데이터를 얻을 수 있습니다 :

ngOnInit() { 
    this.activatedRoute.data.subscribe((resolversData) => { 
    // is now triggered at each queryParams change 
    }) 
} 

see the doc for more info

+0

난 당신이 더 많은 정보를위한 문서에 대한 링크를 게시,하지만 당신은 그 링크에 대한 일부 내용을 제공 할 수 있음을 감사드립니다. – Daniel

+0

확실 :) 편집을 완료했습니다 @ 다니엘 – GautierDab