Angular2 DI访问静态属性

时间:2016-09-02 05:27:06

标签: angular dependency-injection static

我有以下TS类

从'@ angular / core'导入{Injectable};

.contacts_box
{
  float:left;
  height:100%;
  width:300px;
  border:1px dashed magenta;
  box-sizing: border-box;
}

.message_box
{
  float:right;
  height:100%;
  width:500px;
  border:1px dashed lemonchiffon;
  box-sizing: border-box;
}

请注意 AuthServiceUrl 是静态的。如果我有类似的东西,如何在Angular2s DI框架中访问此属性

/* Comment */

如何访问此内容。另外,如果我想制作Config类Singleton,我该如何在Angular2中做到这一点?

1 个答案:

答案 0 :(得分:1)

声明配置变量,并按照https://angular.io/docs/ts/latest/cookbook/dependency-injection.html#!#opaque-token中的说明,在声明opaque-token的地方使用它。

声明config接口和接口提供程序,如下所示:

=> config.ts

export interface Config {
  apiEndpoint: string;
}

export const CONFIG: Config = {
  apiEndpoint  : 'http://api.url.com'
};

=> config.provider.ts

import { OpaqueToken } from '@angular/core';
export let APP_CONFIG = new OpaqueToken('app.config');

在某些共享模块中使用它,如下所示:

=> shared.module.ts

import { NgModule } from '@angular/core';

import { CONFIG } from './config';
import { APP_CONFIG } from './config.provider';

@NgModule({
  providers : [
    {
      provide : APP_CONFIG,
      useValue: CONFIG
    }
  ]
})
export class SharedModule {}
相关问题