Angular. Получить params и queryParams одновременно

Допустим необходимо из url /auth/{session}?server={id} достать session и id. Для такой задачи подходит rxjs оператор combineLatest:

combineLatest(
  this._activatedRoute.params,
  this._activatedRoute.queryParams
)

Он отправит массив из 2 элементов.

import { ChangeDetectionStrategy, Component, OnDestroy, OnInit } from '@angular/core';
import { ActivatedRoute } from '@angular/router';

import { combineLatest, Subscription } from 'rxjs';

@Component({
  selector: 'my-selector',
  template: `LOADING...`,
  changeDetection: ChangeDetectionStrategy.OnPush,
})
export class MyComponent implements OnInit, OnDestroy {
  private _routerSubscription: Subscription;

  constructor(private _activatedRoute: ActivatedRoute) {}

  ngOnInit(): void {
    // params забирает session, queryParams - id
    this._routerSubscription = combineLatest(
      this._activatedRoute.params,
      this._activatedRoute.queryParams
    ).subscribe(([session, id]) => {
      console.log(session, id);
    });
  }

  ngOnDestroy(): void {
    if (this._routerSubscription) {
      this._routerSubscription.unsubscribe();
    }
  }
}

Похожие записи

Как добавить ng-bootstrap компоненты в проект Angular-CLI?

Покажу на примере нового проекта.

ng new project_name
cd project_name
npm install --save bootstrap@next
npm install --save @ng-bootstrap/ng-bootstrap

В angular-cli.json в секцию style надо добавить наш CSS, чтобы глобально подключить стили.

  "styles": [
    "styles.css",
    "../node_modules/bootstrap/dist/css/bootstrap.min.css"
  ],
17 августа 2017 г. в Angular

@Directive v/s @Component in Angular

Компоненты создают DOM элементы и добавляют к ним поведение, а директивы только добавляют поведение к существующим DOM элементам

13 августа 2018 г. в Angular

Angular Storybook

Установите пакет npm i @storybook/cli -g и запустите команду sb init в корне angular проекта.

30 октября 2018 г. в Angular

@Attribute() декоратор

Аналогично @Input() позволяет получить значение атрибута с хоста компонента/директивы, но не отслеживает дальнейшее изменение атрибута.

15 сентября 2019 г. в Angular

Angular environment service

Использование сервиса для окружения вместо прямой ссылки на environment.ts