Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/30.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
Angular2:未解析直接注入令牌_Angular - Fatal编程技术网

Angular2:未解析直接注入令牌

Angular2:未解析直接注入令牌,angular,Angular,我有一个InjectionToken可用于第三方库(@living/cest):BASE\u PATH 我只想用它在控制台上打印出来 我已将提供商声明为: import { BASE_PATH } from '@living/cest'; PROVIDERS = [ { provide: BASE_PATH, useValue: 'http://guest1:8080/commty/cmng' } ]; 因此,在我的AppModule中: @NgModule({ bootstrap:

我有一个
InjectionToken
可用于第三方库(
@living/cest
):
BASE\u PATH

我只想用它在控制台上打印出来

我已将提供商声明为:

import { BASE_PATH } from '@living/cest';
PROVIDERS = [
  { provide: BASE_PATH, useValue: 'http://guest1:8080/commty/cmng' }
];
因此,在我的
AppModule
中:

@NgModule({
  bootstrap: [ App ],
  declarations: [ App, ...],
  imports: [...],
  providers: [
    PROVIDERS
  ]
})
export class AppModule {...}
进入我的
应用程序
组件:

import { BASE_PATH } from '@living/cest';

@Component({...})
export class App {
  constructor(@Optional()@Inject(BASE_PATH) private basePath: string) {
    console.info("BASEPATH: " + basePath);
  }
}
尽管如此,控制台输出为:

基本路径:空

编辑

我正在使用
environment.ts
文件来设置
PROVIDERS
数组:

因此,我只能在app.module.ts上导入它:

import { ENV_PROVIDERS } from './environment';
我在积极地使用它:

providers: [
  ...PROVIDERS
]

可能问题在于
提供程序
本身就是一个数组,您将其传递到
提供程序
。尝试使用
{…,providers:providers}
另一种方法是
{…,providers:[…providers]}
Mmm,我用
providers:[…providers]
尝试过,但一直失败。如果你这样做:
私有basePath:BASE\u PATH
它会记录一些东西吗?你需要
@Optional()
decorator?你试过移除它吗?