首页 新闻 会员 周边

angular query parameters 使用问题

0
悬赏园豆:30 [已解决问题] 解决于 2024-03-07 18:58

下面的代码会渲染出多个 <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>
dudu的主页 dudu | 高人七级 | 园豆:30994
提问于:2024-03-07 16:07
< >
分享
最佳答案
0

可以通过给对应的查询参数指定 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 };
        }
    }
}
dudu | 高人七级 |园豆:30994 | 2024-03-07 18:58
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册