Обнаружена круговая зависимость Предупреждение от локального проекта Angular, но не на Stackblitz

У меня есть очень простой проект Angular на Stackblitz, где у меня есть модуль authorisations на странице /authorisations, содержащей трех дочерних элементов в /pending, /closed и /open соответственно. Хотя в Stackblitz все работает нормально, когда я пытаюсь запустить этот проект локально, появляется следующая проблема:

ПРЕДУПРЕЖДЕНИЕ в обнаружении циклической зависимости: src / app / authorizations / authorizations-routing.module.ts -> src / app / authorizations / authorizations / authorisations.component.ts -> src / app / authorizations / authorizations-routing.module.ts

ПРЕДУПРЕЖДЕНИЕ в обнаружении циклической зависимости: src / app / authorizations / authorizations / authorisations.component.ts -> src / app / authorizations / authorizations-routing.module.ts -> src / app / authorizations / authorizations / authorisations.component.ts

что имеет смысл, поскольку я использую переменные authorisationRoutes как в authorisations.component.ts, так и в authorisations-routing.module.ts. Как я могу изменить структуру кода так, чтобы эта циклическая зависимость исчезла?

Я знаю, что могу просто вручную ввести значения пути и заголовка в authorisations.component.ts, однако я хотел бы просто *ngFor итерацию в массиве. Есть ли способ добиться этого?

Заранее спасибо.


person Michael    schedule 12.06.2020    source источник


Ответы (1)


Привет @Michael, я могу придумать только один способ решить эту проблему:

Создайте файл routes-constant.ts для хранения ваших маршрутов и после этого импортируйте маршруты внутри вашего компонента и модуля маршрутов.

Или после создания файла routes-constant.ts импортируйте маршруты прямо в свой AuthorisationsModule, где вы можете объявить свой модуль маршрутизации и использовать маршруты

@NgModule({
  imports: [ RouterModule.forChild(authorisationsRoutes) ],
  exports: [ RouterModule ]
})
export class AuthorisationsRoutingModule { }


@NgModule({
  declarations: [
    ...
  ],
  imports: [
    CommonModule,
    AuthorisationsRoutingModule
  ],
  providers: [
  ]
})
export class AuthorisationsModule { }


person Християн Христов    schedule 12.06.2020