我在我的示例Angular 2应用程序中使用OpaqueToken,下面是相关代码
//app.module.ts
......
....
export const MY_CONFIG_TOKEN = new OpaqueToken('MY_CONFIG_TOKEN');
providers: [
{ provide: MY_CONFIG_TOKEN, useValue: {test:'test'} }
]
....
.....
下面是我的相关根组件代码,其中我使用令牌进行依赖注入
....
....
constructor(@Inject(MY_CONFIG_TOKEN) private myconfig:any,){}
在浏览器中运行此应用程序会抛出错误
无法解析AppComponent的所有参数
任何想法可能是造成此错误的原因。 如果需要提供更多信息,请与我们联系。
答案 0 :(得分:1)
这是一个工作插件https://plnkr.co/edit/pDNFSP?p=preview,展示了如何使用OpaqueToken。 以下是定义OpaqueToken的方法:
import { OpaqueToken } from '@angular/core';
export let MY_CONFIG_TOKEN = new OpaqueToken('configToken');
然后在主模块中导入它:
import { MY_CONFIG_TOKEN } from './token';
然后在供应商
下注册providers: [{provide: MY_CONFIG_TOKEN, useValue: {test:'test'} }],
最后你可以像这样使用它:
constructor(@Inject(MY_CONFIG_TOKEN) private myconfig:any) {
myconfig.value = "Hello";
console.log(myconfig.value);
}
在App组件中,我附加了一个虚拟"值"属性到令牌,并在构造函数中设置后在控制台中显示它。
希望这有帮助。
答案 1 :(得分:0)
修改此
export const MY_CONFIG_TOKEN = new OpaqueToken('MY_CONFIG_TOKEN');
到
declare let MY_CONFIG_TOKEN = new OpaqueToken(window_object);