在我的angular 2項目中,我無法通過導航到相同的URL但使用不同的查詢參數來重新加載頁面。我正在使用解析在加載頁面時預取數據。查詢參數更改後重新解析數據?
我試圖讓解析器在URL(查詢參數)更改時重新獲取數據。我該怎麼做呢?
在我的angular 2項目中,我無法通過導航到相同的URL但使用不同的查詢參數來重新加載頁面。我正在使用解析在加載頁面時預取數據。查詢參數更改後重新解析數據?
我試圖讓解析器在URL(查詢參數)更改時重新獲取數據。我該怎麼做呢?
我認爲你不能改變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'];
}
})
}
我認爲你正在使用快照,而不是可觀察queryParams這就是爲什麼的。
現在你可以使用這個在您的路線配置:
{
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
})
}
我很欣賞你張貼的鏈接文檔以獲得更多信息,但您可以提供該鏈接的一些背景。 – Daniel
當然:)我做了一個編輯@Daniel – GautierDab