Angular. Редирект по условию

import { ChangeDetectionStrategy, Component } from '@angular/core';
import { Router } from '@angular/router';

import { APIService } from 'api';

/**
 * Компонент используется для условного перенаправления пользователя
 * с корневого url адреса. Зависимость от количества:
 * 0 - dashboard
 * 1 - карточка 
 * 2 и более - список
 */
@Component({
  selector: 'app-welcome',
  template: `<preloader size="large" [loading]="true"></preloader>`,
  changeDetection: ChangeDetectionStrategy.OnPush,
})
export class WelcomeComponent {
  constructor(router: Router, someApi: APIService) {
    someApi.getList().subscribe(res => {
      const count = res.size;
      if (count === 0) {
        router.navigate(['/dashboard']);
      }
      if (count === 1) {
        const id = res.list[0].id;
        router.navigate([`/thing/${id}/overview`]);
      }
      if (count > 1) {
        router.navigate(['/thing/list']);
      }
    });
  }
}

Redirect user with router depending on logged in status

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

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

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

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

Angular URL Matcher

Функция сопоставления маршрута с URL-адресами. Возможность динамически подбирать компонент для маршрута

04 октября 2020 г. в Angular

Вставить <script> в Angular компонент

Добавление сторонних скриптов в Angular по запросу. Как известно, добавить скрипт через шаблон невозможно. Представлено решение как это сделать программно.

15 ноября 2019 г. в Angular

Angular. Functions & getters в шаблонах

На каждый цикл механизма обнаружения изменений выполняется метод из шаблона. Если этого надо избежать, то следует использовать pure pipe или результат выполнения присвоить свойству компонента

13 сентября 2020 г. в Angular