首页 文章

Angular - routerLinkActive和queryParams处理

提问于
浏览
2

我在Angular中使用routerLink,如下所示

<li routerLinkActive="active">
    <a [routerLink]="['/view', 10]"                 
       [queryParams]="{'offset': 0, 'numberOfItems': 100}" 
       queryParamsHandling="merge">
        <div>View</div>
        <div><span class="badge" [innerHtml]="viewCount"></span></div>
    </a>
</li>

因此,当URL看起来时,.active类被添加到li标签中

/view/10?offset=0&numberOfItems=100

如果URL已将 offsetnumberOfItems 更改为其他值,则将删除.active类,例如 .

/view/10?offset=0&numberOfItems=120

我经历了angular docs并设法通过添加另一个routerLink使其工作,但使其隐藏如下 .

<li routerLinkActive="active">
    <a [routerLink]="['/view', 10]"                 
       [queryParams]="{'offset': 0, 'numberOfItems': 100}" 
       queryParamsHandling="merge">
        <div>View</div>
        <div><span class="badge" [innerHtml]="viewCount"></span></div>
    </a>
    <a [routerLink]="['/view', 10]" style="display:none;">                
        <div><span class="badge" [innerHtml]="viewCount"></span></div>
    </a>
</li>

看来上面的方法有点破解 . 当路由器参数与可选查询参数一起出现时,是否有任何配置可以使routerLinkActive正常工作?

1 回答

相关问题