Еще раз, мне нужна твоя помощь! С Angular Routing я столкнулся с интересной проблемой, теперь у меня на сайте несколько модулей. Одним из них является модуль блога с разбивкой на страницы, который дает нам URL-адрес типа '/blog?page=2'
, и мы также измеряем производительность наших ссылок с помощью параметров запроса utm, поэтому в итоге я могу получить URL-адрес типа '/blog?page=2&utm_source=facebook&utm_campaign=blah&utm_blah=blah'
. есть шанс сохранить только запрос типа utm_ queryParams, потому что я не хочу заканчивать другой ссылкой URL-адрес, похожий на '/about?page=2&utm_source=facebook&utm_campaign=blah&utm_blah=blah'
с сохранением страницы queryParam
Я уже создал директиву, которая помогает мне сохранить все queryParams в навигации, но мне было интересно, смогу ли я как-то отфильтровать его, чтобы мне не пришлось удалять на каждой ссылке параметр страницы, что-то вроде if !url.includes('blog') keep queryParam that includes utm_
, возможно, это невозможно, но я не смог понять это.
import { Directive } from '@angular/core';
import { RouterLinkWithHref, QueryParamsHandling, ActivatedRoute, Router } from '@angular/router';
import { LocationStrategy } from '@angular/common';
@Directive({
selector: 'a[routerLink]'
})
export class QueryParamsHandlingDirective extends RouterLinkWithHref {
constructor(router: Router, route: ActivatedRoute, locationStrategy: LocationStrategy) {
super(router, route, locationStrategy);
}
queryParamsHandling: QueryParamsHandling = 'merge';
}
Спасибо, ребята!