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

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

Отладка Angular в VS Code

Настройка Visual Studio Code используя расширение Debugger for Chrome для отладки Angular приложений
03 декабря 2017 г. в Angular

#local variable внутри *ngIf

Представлены 2 варианта решения, как сослаться на локальную переменную шаблона (#myVar) за пределами шаблона:

  • @ViewChild
  • @ViewChildren
13 февраля 2019 г. в Angular

Angular. Когда не надо отписываться в RxJS?

В async pipe за вас отпишется Angular. Во всех остальных случаях лучше отписываться самостоятельно. Допускается не отписываться в потоках, где будет гарантировано вызван complete.

Angular. Manually retry http request

На память. Некоторое время назад я решил достаточно необычную задачу, но в последствии на backend`е переделали логику и код был удалён из проекта.