在 Angular 7 中解决存在查询参数时出现的不必要重定向问题,可以通过使用 queryParamsHandling
属性来实现。该属性用于定义如何处理查询参数。
下面是一个示例代码,演示如何使用 queryParamsHandling
属性来解决这个问题:
import { Component } from '@angular/core';
import { ActivatedRoute, Router } from '@angular/router';
@Component({
selector: 'app-my-component',
template: `
`
})
export class MyComponent {
constructor(private router: Router, private route: ActivatedRoute) {}
redirectToPage() {
this.router.navigate(['/page'], {
queryParams: { id: 1 },
queryParamsHandling: 'merge' // 使用 merge 来保留现有查询参数
});
}
}
在上面的示例中,queryParamsHandling
属性被设置为 merge
,这表示新的查询参数将与现有的查询参数合并。这意味着,如果页面已经存在查询参数,那么重定向时不会丢失这些现有的查询参数。
通过设置 queryParamsHandling
属性,可以解决存在查询参数时出现的不必要重定向问题。