2017-04-06 6 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']; 
     } 
    }) 
} 

私はあなたの代わりに、なぜthatsの観察可能queryParamsのスナップショットを使用していると思います。

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

関連する問題