angular - Angular 库组件在服务提供者可注入时抛出错误
问题描述
我有一个库,其中有一个模块和两个组件。其中一个组件需要使用服务(并且传入了一个配置 - 在我将服务添加到构造函数之前它就工作了)。
ERROR Error: Uncaught (in promise): Error: This constructor was not compatible with Dependency Injection.
Error: This constructor was not compatible with Dependency Injection.
at Module.ɵɵinvalidFactory (core.js:13777)
at NodeInjectorFactory.QrCodeService_Factory [as factory] (qr-code.service.ts:26)
at getNodeInjectable (core.js:4029)
at searchTokensOnInjector (core.js:3965)
at getOrCreateInjectable (core.js:3887)
at Module.ɵɵdirectiveInject (core.js:13753)
at NodeInjectorFactory.QrCodeComponent_Factory [as factory] (qr-code.component.ts:21)
at getNodeInjectable (core.js:4029)
at instantiateRootComponent (core.js:7826)
at createRootComponent (core.js:18375)
at resolvePromise (zone-evergreen.js:798)
at resolvePromise (zone-evergreen.js:750)
at zone-evergreen.js:860
at ZoneDelegate.invokeTask (zone-evergreen.js:399)
at Object.onInvokeTask (core.js:27425)
at ZoneDelegate.invokeTask (zone-evergreen.js:398)
at Zone.runTask (zone-evergreen.js:167)
at drainMicroTaskQueue (zone-evergreen.js:569)
我错过了什么吗?
服务(QrCodeService)装饰有:
@Injectable({
providedIn: 'any'
})
组件(QrCodeComponent)装饰有:
@Component({
providers: [
QrCodeService
]
})
以及组件的构造函数:
constructor(
@Inject(QR_LIB_CONFIG) qrLibConfig,
private qrCodeService: QrCodeService
)
解决方案
推荐阅读
- jmeter - 在负载测试期间在 Jmeter 日志中传递错误消息
- java - 比较两个散列字符串并分发到 Java 中的元素
- python - 如何在 pytest 中处理 sys.argv?
- database - Oracle 数据库外部表问题。ORA-29913、ORA-29400 和 KUP-04004
- javascript - 如何在几小时内设置 vue-cookie 到期时间
- scala - 如何从 scala 中的泛型类型生成 TypeInformation
- cryptography - 如何使用 XMC4500 正确生成 1024 位 rsa 密钥对?
- java - 如何向 slf4j 提供我自己的 MDCAdapter?
- excel - 如何将数据从启用宏的 Excel 工作簿复制到另一个 Excel 文件
- javascript - 向左平滑滚动