Angularjs   发布时间:2022-04-20  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Angular 2 – 作为NgModule服务而不必声明所有提供者?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个名为Calculationservice的服务,它被声明为@Injectable().此服务使用大量其他注入类,每个类也声明为@Injectable(),并通过@Inject()提供给Calculationservice的构造函数. @H_502_1@现在,当我想在我的应用程序中使用该服务时,AppComponent看起来像这样(为了方便起见,我省略了Typescript导入):

@NgModule({
  declarations: [AppComponent],imports: [
    BrowserModule,RouterModule.forRoot(routeConfig),PlAnnerModule
  ],providers: [
    Inputservice,Bausparen,BausparenInput,Girokonto,GirokontoInput,Immobilien,ImmobilienInput,Lebensversicherung,LebensversicherungInput,Rentenversicherung,RentenversicherungInput,Tagesgeld,TagesgeldInput,Termingeld,TermingeldInput,Wertpapiere,WertpapiereInput
  ],bootstrap: [AppComponent]
})
export class AppModule {
}
@H_502_1@我不需要直接访问app模块中声明的所有提供程序.唯一需要的类是Calculationservice,但我不知道如何在服务中声明提供者.

@H_502_1@有没有办法将服务重构为模块,即在Calculationservice中声明提供程序?或者我必须摆脱所有@Injectable()s(Bausparen等)并在计算服务中创建对象,以便不需要提供者?

您无法在服务上或服务中注册提供商.您只能在模块或组件中注册它们. @H_502_1@您可以做的是为您的服务创建一个模块,然后您只需要将模块添加到导入:[…]并且所有提供者都在全球注册.

@H_502_1@如果它是一个延迟加载的模块,你需要实现并导入forRoot()

大佬总结

以上是大佬教程为你收集整理的Angular 2 – 作为NgModule服务而不必声明所有提供者?全部内容,希望文章能够帮你解决Angular 2 – 作为NgModule服务而不必声明所有提供者?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。