Angular providedIn:LazyModule失败,没有提供程序错误

Angular providedIn:LazyModule失败,没有提供程序错误,angular,angular-dependency-injection,Angular,Angular Dependency Injection,我想将中提供的选项引用到一个提供声明和依赖项的角度模块。我创建了一个附加模块SharedModule,作为lazy模块LazyModule的子模块,以便它可以用作我想要提供的lazy服务的“锚定”(CounterService)。我一直遵循这一点来实现它,但显然做了一些错误的事情。 另外,我做了一个小计划,但请看一看完整的例子 Eager部分延迟加载模块 +----------------------------------------------+ +-------------------

我想将中提供的
选项引用到一个提供声明和依赖项的角度模块。我创建了一个附加模块
SharedModule
,作为lazy模块
LazyModule
的子模块,以便它可以用作我想要提供的lazy服务的“锚定”(
CounterService
)。我一直遵循这一点来实现它,但显然做了一些错误的事情。 另外,我做了一个小计划,但请看一看完整的例子

Eager部分延迟加载模块
+----------------------------------------------+  +--------------------------------------+
|路由:| |@NgModule({|
|| |导入:[共享模块]|
|{                                             |  | }                                    |
|路径:'lazy',| |导出类LazModule{}|
|loadChildren:'./懒惰/懒惰.模块#LazyModule ||
|}                                             |  |                                      |
+----------------------------------------------+|共享模块|
| +----------------------------------+ |
||@NgModule({||
||声明:[共享组件],||
||导出:[共享组件]||
| |})                                | |
||导出类SharedModule{}||
| +----------------------------------+ |
|                                      |
|                                      |
|懒散的服务|
| +----------------------------------+ |
||@可注射({||
||提供于:共享模块||
| |})                                | |
||导出类反服务{||
||计数器=0;||
| |}                                 | |
| +----------------------------------+ |
|                                      |
+--------------------------------------+
正如前面提到的,您需要在自己的模块中定义服务,以避免循环依赖性问题

计数器模块.ts

柜台服务.ts

在共享模块中导入计数器模块。 共享的.module.ts

以下是工作堆栈闪电战:

import { NgModule, ModuleWithProviders } from "@angular/core";


@NgModule({
})
export class CounterModule {}

import { Injectable } from '@angular/core';
import { CounterModule } from "./counter.module";

@Injectable({
  providedIn: CounterModule
})
export class CounterService {
  counter = 0;
}

@NgModule({
  imports: [
      CounterModule
  ],
  declarations: [SharedComponent],
  exports: [SharedComponent]
})
export class SharedModule {}