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

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

Как добавить 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

Angular environment service

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

26 января 2020 г. в Angular