Передача angular URL приложения с параметрами запроса другим пользователям - PullRequest
0 голосов
/ 13 января 2020

У меня есть требование, где я хочу передать состояние фильтров другому пользователю. Например, когда я нахожусь на определенной странице и применяю те же фильтры. Я хочу поделиться URL-адресом с некоторым состоянием, то есть примененными фильтрами с другими пользователями.

Ответы [ 3 ]

0 голосов
/ 13 января 2020

Вы можете сделать это так curenturl = window.location.href paramobj = JSON.parse('{"' + currenturl.split('?')[1].replace(/&/g, '","').replace(/=/g, '":"') + '"}', function (k, v) { return k === '' ? v : decodeURIComponent(v) }) Вы получите объект свойств в URL

0 голосов
/ 14 января 2020

Наконец-то я нашел решение:

Мы можем добавить наше значение ключа в queryParams. Если это объект, вы можете его преобразовать в строку.

const tree = this.router.createUrlTree([], { queryParams: {productImpacted:this.productImpacted, Division: this.businessUnit, Region: JSON.stringify(this.regionFilter),OU:this.operatingUnit} });
  console.log(this.serializer.serialize(tree)); // "/?foo=a&bar=42"
  let url = window.location.origin+this.serializer.serialize(tree);

Вы можете извлечь данные из параметра запроса, используя следующий код

 this.route.queryParams.subscribe(params => {

    var data = params[key]

});

0 голосов
/ 13 января 2020

Проверьте https://angular.io/guide/router#route -параметры

Установите его в своей маршрутизации

{ path: 'hero/:id', component: HeroDetailComponent }

Потребляйте в своем компоненте

ngOnInit() {
  this.hero$ = this.route.paramMap.pipe(
    switchMap((params: ParamMap) =>
      this.service.getHero(params.get('id')))
  );
}

Или не наблюдаемая альтернатива

ngOnInit() {
  let id = this.route.snapshot.paramMap.get('id');

  this.hero$ = this.service.getHero(id);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...