Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/29.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Angular 2中使用OpaqueToken_Angular - Fatal编程技术网

在Angular 2中使用OpaqueToken

在Angular 2中使用OpaqueToken,angular,Angular,我在示例Angular 2应用程序中使用OpaqueToken,下面是相关代码 //app.module.ts ...... .... export const MY_CONFIG_TOKEN = new OpaqueToken('MY_CONFIG_TOKEN'); providers: [ { provide: MY_CONFIG_TOKEN, useValue: {test:'test'} } ] .... ..... 下面是我的相关

我在示例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的所有参数

你知道这个错误的原因吗。 如果需要提供更多信息,请告诉我。

修改此选项

export const MY_CONFIG_TOKEN = new OpaqueToken('MY_CONFIG_TOKEN');

下面是一个工作图,显示了如何使用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);
  }
在应用程序组件中,我将一个伪“value”属性附加到令牌,并在构造函数中设置后在控制台中显示它


希望这能有所帮助。

尝试从
any
之后编写的构造函数中删除
。此处
myconfig:any,
仍然是相同的错误引用此错误,并按照如下步骤将
const
更改为
let
这显示编译时类型脚本错误,“环境上下文中不允许使用初始值设定项。”我使用Angular cli,不知道该信息是否有助于您按照这些步骤操作?还是不工作?
constructor(@Inject(MY_CONFIG_TOKEN) private myconfig:any) {
    myconfig.value = "Hello";
    console.log(myconfig.value);
  }