multi:true表示angular4中的提供者
发布时间:2020-12-17 17:43:28 所属栏目:安全 来源:网络整理
导读:我在angular4中使用HTTP_INTERCEPTORS.为此,我创建了HttpServiceInterceptor类,它实现了HttpInterceptor接口并为拦截方法提供了定义.然后像这样注册HTTP_INTERCEPTORS的提供者 providers: [{ provide: HTTP_INTERCEPTORS,useClass: HttpServiceInterceptor,m
我在angular4中使用HTTP_INTERCEPTORS.为此,我创建了HttpServiceInterceptor类,它实现了HttpInterceptor接口并为拦截方法提供了定义.然后像这样注册HTTP_INTERCEPTORS的提供者
providers: [{ provide: HTTP_INTERCEPTORS,useClass: HttpServiceInterceptor,multi: true }], 这工作正常.但我仍然不明白多重:真正意味着什么?我看过this answer. 如果我删除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阵列. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |