Angularjs   发布时间:2022-04-20  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了multi:true表示angular4中的提供者大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我在angular4中使用http_INTERCEPTORs.为此,我创建了httpserviceInterceptor类,它实现了httpInterceptor接口并为拦截方法提供了定义.然后像这样注册http_INTERCEPTORS的提供者

providers: [{
    provide: http_INTERCEPTORS,useClass: httpserviceInterceptor,multi: true
}],

这工作正常.但我仍然不明白多重:真正意味着什么?我看过this answer.

如果我@L_470_4@multi:true选项,那么浏览器端会出现错误

Uncaught Error: Provider parse errors:
mixing multi and non multi provider is not possible for token InjectionToken_http_INTERCEPTORS ("[ERROR ->]"): in NgModule AppModule in ./AppModule@-1:-1
    at NgModuleProviderAnalyzer.webpackJsonp.487.NgModuleProviderAnalyzer.parse (vendor.js:36335)
    at NgModuleCompiler.webpackJsonp.487.NgModuleCompiler.compile (vendor.js:43184)
    at JitCompiler.webpackJsonp.487.JitCompiler._compileModule (vendor.js:51527)
    at vendor.js:51472
    at Object.then (vendor.js:26354)
    at JitCompiler.webpackJsonp.487.JitCompiler._compileModuleAndComponents (vendor.js:51470)
    at JitCompiler.webpackJsonp.487.JitCompiler.compileModuleAsync (vendor.js:51399)
    at PlatformRef_.webpackJsonp.0.PlatformRef_._bootstrapModuleWithZone (vendor.js:4746)
    at PlatformRef_.webpackJsonp.0.PlatformRef_.bootstrapModule (vendor.js:4732)
    at Object.<anonymous> (app.js:23366)

这是否意味着http_INTERCEPTORS是多提供程序,初始化多个指令或组件?如果是,那么其他指令和组件是什么?

解决方法

多供应商与指令无关. This answer仅作为示例提及指令.

虑到FOO是注射令牌,这个

providers: [
  { provide: FOO,useClass: Bar,multi: true },{ provide: FOO,useClass: Baz,multi: true }
]

使FOO注入依赖项成为分配给此令牌的多个提供程序的数组,即与以下内容相同:

providers: [
  { provide: FOO,useValue: [Bar,Baz] }
]

不同之处在于可以在同一个注入器上的多个位置定义多个提供者,并且所有额外的{provide:FOO,multi:true,…}都会推送到FOO阵列.

大佬总结

以上是大佬教程为你收集整理的multi:true表示angular4中的提供者全部内容,希望文章能够帮你解决multi:true表示angular4中的提供者所遇到的程序开发问题。

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

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