下面的代码会渲染出多个 <li>
,点击每个 <li>
会 navigate 到不同的 url 并自动携带 url 中的所有查询查询参数,比如 ?page=5
,请问如何实现不携带指定的参数
<ng-template>
<li class="sidebar-post-categories-item"
*ngIf="category"
#categoryItem
(click)="!paths ? onCategoryItemClicked(rla, $event) : undefined"
[routerLink]="paths ? ['/', baseUrl, paths.join('/')] : (category | blogCategoryRouterLink: categoryType: baseUrl)"
[queryParams]="queryParams ? queryParams : (category.categoryId | blogCategoryQueryParams: categoryType)"
[queryParamsHandling]="'merge'">
</li>
</ng-template>
可以通过给对应的查询参数指定 undefined
值实现
await this._router.navigate(['/', this.baseUrl], {
queryParamsHandling: 'merge',
queryParams: { page: undefined },
});
对于提问中的代码,就是把 blogCategoryQueryParams
改为下面的实现
export class BlogCategoryQueryParamsPipe implements PipeTransform {
transform(value: any, categoryType: BlogCategoryType): Params {
switch (categoryType) {
case BlogCategoryType.imageCollection:
return {};
default:
return { cateId: value, page: undefined };
}
}
}