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?你试过移除它吗?