Разрешение циклической зависимости в Angular путем экспорта из одного файла - PullRequest
0 голосов
/ 08 апреля 2020

У меня есть проект, который имеет большую область круговой зависимости. Чтобы решить эту проблему, я создал простой проект с круговой зависимостью , чтобы найти решение.

Я сталкивался с различными решениями, такими как инъекции. Как решить круговую зависимость

, но есть также решение для экспорта всех зависимостей из одного файла , который приведен в этой статье https://medium.com/visual-development/how-to-fix-nasty-circular-dependency-issues-once-and-for-all-in-javascript-typescript-a04c987cf0de

Я выполнил следующие инструкции:

moduleA.ts

import { MODULE_B_NAME } from "./internal";

export const MODULE_A_NAME = 'Module A';

export class ModuleA {

  public static getName(): string {

    return MODULE_B_NAME;

  }

}

modeulB.ts

import { MODULE_A_NAME } from "./internal";

export const MODULE_B_NAME = 'Module B';

export class ModuleB {

  public getName(): string {

    return MODULE_A_NAME;

  }

}

app.component. ts

import { Component } from '@angular/core';
import { ModuleA } from './internal';

@Component({
  selector: 'app-root',
  templateUrl: './app.component.html',
  styleUrls: ['./app.component.css']
})
export class AppComponent {
  title = 'test01';


  getSomething() {

    return ModuleA.getName();
  }



}

internal.ts

export * from './app.component';
export * from './moduleA';
export * from './moduleB';

app.module.ts

import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';

import { AppComponent } from './internal';

@NgModule({
  declarations: [
    AppComponent
  ],
  imports: [
    BrowserModule
  ],
  providers: [],
  bootstrap: [AppComponent]
})

Я выполнил все шаги, но предупреждения о циклической зависимости все еще выдаются. что я не делаю правильно? enter image description here

...