Exception Angular2-找不到服务提供商
我在应用程序中定义了3个组件。AppComponent、MainComponent和TextComponent AppComponent包含main组件,如下所示。请注意,我在providers属性中包含了两个服务,CommonEventsService、CommonProductEventsServiceException 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
@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