【发布时间】:2016-09-02 09:10:36
【问题描述】:
您好,我无法让 opaquetoken 工作,是我忽略了什么吗?
在 app.ts 中
export const SbToken = new OpaqueToken('myToken');
const testfile = 'Hello';
在 ngModule 中
providers: [{provide:SbToken, useValue:testfile}]
在 test.cmp 中
constructor(@Inject(SbToken) private token) {
console.log(token)
}
我遇到了错误(在朋克中,我猜它使用 systemJS)
(SystemJS) 错误:无法解析 TestComponent 的所有参数:(?)。
在我的 webpack 项目中,我遇到了类似的错误
Can't resolve all parameters for LoginPage: (NavController, SelfbitsAngular, ?).
【问题讨论】:
-
您是否在
test.cmp中导入了SbToken? -
看来我有一些蓝色缺陷。如果 Plunker 链接没有以某种方式突出显示,我永远不会看到它们。对此感到抱歉。该问题似乎与
OpaqueToken无关。如果您将其设为可选(@Optional() @Inject(SbToken)或注入private service:TestService),则同样失败。如果您将组件移动到与模块相同的文件中,那么它工作正常。 plnkr.co/edit/lHIuc81COVEGv4SKGOKd?p=preview。我不知道到底是什么导致了这个问题。 -
但这有点破坏了 opaqueToken 的使用,不是吗?如果我无法导出它们以供使用...
-
正如我所说,问题与
OpaqueToken完全无关。这似乎是某种进口问题。如前所述,如果您不使用OpaqueToken而是按类型注入其他内容,则会出现相同的错误。
标签: angular dependency-injection token