Angular2:直接注射令牌未解决

时间:2017-04-13 10:26:58

标签: angular

我已将InjectionToken提供给第三方库(@living/cest):BASE_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 {...}

进入我的App组件:

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

@Component({...})
export class App {
  constructor(@Optional()@Inject(BASE_PATH) private basePath: string) {
    console.info("BASEPATH: " + basePath);
  }
}

但是,控制台输出是:

  

BASEPATH:null

修改

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

所以,我在app.module.ts上导入它:

import { ENV_PROVIDERS } from './environment';

我直截了当地使用它:

providers: [
  ...PROVIDERS
]

0 个答案:

没有答案