Угловые не единственные услуги против циклической зависимости - PullRequest
0 голосов
/ 06 июля 2019

У меня есть пара служб, используемых для управления состоянием с Akita (IssueStore и Issue Query).

Вместо того, чтобы предоставлять эти две службы в инжекторе «root», я хочу включить их только в модуль, в котором они будут использоваться (IssueModule). Это в основном из соображений производительности, поскольку я не вижу необходимости загружать эти службы сразу после запуска приложения.

У меня появилась циклическая зависимость, и я не уверен, как ее разрешить, не изменив providedIn на 'root' в сервисах. Это предупреждающее сообщение:

WARNING in Circular dependency detected:
src\app\modules\issue\state\issue.store.ts -> src\app\modules\issue\issue.module.ts -> src\app\modules\issue\issue-list\issue-list.component.ts -> src\app\modules\issue\state\issue.query.ts -> src\app\modules\issue\state\issue.store.ts

modules\issue\state\issue.store.ts - служба основного хранилища, импортирует модуль IssueModule, потому что именно там он и предоставляется.

modules\issue\issue.module.ts - импортирует IssueListComponent, потому что модуль объявляет его.

\modules\issue\issue-list\issue-list.component.ts - импортирует службу IssueQuery, поскольку в нее внедряется IssueQuery.

\modules\issue\state\issue.query.ts импортирует IssueStore, потому что в него вставлен IssueStore.

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

...