Сохраняйте c queryParam при навигации - PullRequest
0 голосов
/ 30 апреля 2020

Еще раз, мне нужна твоя помощь! С 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';
}

Спасибо, ребята!

...