Angular 2 Обеспечивает очень хорошую функцию, называемую непрозрачными константами. Создайте класс и определите все константы там, используя непрозрачные константы.
import { OpaqueToken } from "@angular/core";
export let APP_CONFIG = new OpaqueToken("my.config");
export interface MyAppConfig {
apiEndpoint: string;
}
export const AppConfig: MyAppConfig = {
apiEndpoint: "http://localhost:8080/api/"
};
Внедрить его в провайдеров в app.module.ts
Вы сможете использовать его для всех компонентов.
РЕДАКТИРОВАТЬ для Angular 4:
Для Angular 4 новой концепцией является Injection Token, а Opaque token устарела в Angular 4.
Injection Token Добавляет функциональные возможности поверх непрозрачных токенов, позволяет прикреплять информацию о типе к токену с помощью обобщений TypeScript, а также токенов Injection, устраняет необходимость добавления @Inject
Пример кода
Angular 2 с использованием непрозрачных токенов
const API_URL = new OpaqueToken('apiUrl'); //no Type Check
providers: [
{
provide: DataService,
useFactory: (http, apiUrl) => {
// create data service
},
deps: [
Http,
new Inject(API_URL) //notice the new Inject
]
}
]
Angular 4 Использование токенов
const API_URL = new InjectionToken<string>('apiUrl'); // generic defines return value of injector
providers: [
{
provide: DataService,
useFactory: (http, apiUrl) => {
// create data service
},
deps: [
Http,
API_URL // no `new Inject()` needed!
]
}
]
Токены инъекции логически разработаны поверх жетонов Opaque, а жетоны Opaque устарели в Angular 4.
export
ключевое словоclass
как до, так иpublic static
передreadonly
ключевым словом. Смотрите здесь: stackoverflow.com/a/22993349