Exception Angular2-找不到服务提供商

Exception Angular2-找不到服务提供商,exception,dependency-injection,angular,Exception,Dependency Injection,Angular,我在应用程序中定义了3个组件。AppComponent、MainComponent和TextComponent AppComponent包含main组件,如下所示。请注意,我在providers属性中包含了两个服务,CommonEventsService、CommonProductEventsService @Component({ selector: 'my-app', template: ` <my-main></my-main> `, pro

我在应用程序中定义了3个组件。AppComponent、MainComponent和TextComponent

AppComponent包含main组件,如下所示。请注意,我在providers属性中包含了两个服务,CommonEventsService、CommonProductEventsService

@Component({
  selector: 'my-app',
  template: `
    <my-main></my-main>
  `,
  providers: [CommonEventsService, CommonProductEventsService],
  directives: [ROUTER_DIRECTIVES, MainComponent]
})
export class AppComponent implements OnInit, OnDestroy  {...}
问题是,当加载应用程序时,我会出现以下错误

EXCEPTION: No provider for CommonProductEventsService! (TextComponent ->   CommonProductEventsService) in [addText in MainComponent@41:13]
但是我已经在AppComponent中注册了CommonProductEvents服务。为什么我会出现这个错误?

无法重现。看

你有吗

CommonEventsService
CommonProductEventsService 
在与组件相同的文件中,但在文件的下面

然后您需要向上移动它们,使用
forwardRef
或将它们作为单独的文件移动到中并导入它们

另见
-
-

提供程序[]阵列中可以声明的服务数量是否有限制?我在那里和子组件中声明了20个服务,这是抛出错误。我认为没有限制,至少没有那么小。服务的定义顺序重要吗?如果它们相互依赖?是的,顺序很重要。上课时间不长。如果类用作尚未处理的类型,则该类是未知的。IMHO最简单的方法是将每个类放入它自己的文件中。嗨,Günter Zöchbauer,我有一个主组件,我在提供者中定义了20个服务,如下所示:提供者:[CommonEventsService,CommonProductEventsService,ProductsService,FontsService,DesignColorsService,ClipartsVGService,ClipartTagsService,DesignsService,OrdersService,PriceService,SignedUrlService,S3ProcessorService,FontProcessorService,ProductsShelService,DesignColorsProcessorService,SaveProcessorService,PriceProcessorService,OrderHelperService,LoadOrderHelperService,CheckoutService,ShareHelperService]
EXCEPTION: No provider for CommonProductEventsService! (TextComponent ->   CommonProductEventsService) in [addText in MainComponent@41:13]
CommonEventsService
CommonProductEventsService