1

我正在尝试处理我的 Angular 应用程序中的一种情况,其中我有一些通过 routerLink 加载的内部链接(一个部分中的链接 - 使用与应用程序的其余部分不同的导航机制)。这本身就足够了,看起来像这样:

<a [routerLink]="'/section-start'" routerLinkActive="selected">Section Start</a>

但是,自从我第一次设置这些链接以来,我们现在也有一些过滤器选择,我们也保存在 url 中。所以我也想弄清楚如何在这里通过这些。我认为Angularroute.snapshot可以在这里工作。所以我正在尝试这个:

<a [routerLink]="['/section-start', getParams()]" routerLinkActive="selected">Section Start</a> 

getParams()看起来像这样:

getParams() {
    return this.route.snapshot;
}

这让我更接近......但是,我仍然最终将主 url 链接加倍(这并不奇怪,因为它正在拍摄整个 url 链接的快照),并且假设我启用了“西班牙语”语言过滤器,地址栏中的 url 最终看起来像这样:

http://somesite.com/section-start;url=section-start%3Bpn_lang_e%3Dtrue%3Bpn_lang_s%3DSpanish

虽然使用我在站点其他区域的常用路由机制,但相同的参数会产生这样的 url(这就是它应该看起来的样子):

http://somesite.com/section-start;pn_lang_e=true;pn_lang_s=西班牙语

由于我通过传入接近正确的 url getParams(),我假设有一种方法可以清理/解析它以不同的方式结束,从而得到正确的 url 字符串。关于我如何做到这一点的任何想法 - 或者有没有比这更好的方法?

4

0 回答 0