Я хочу добавить раздел " App Settings
" в свое приложение, где он будет содержать некоторые константы и предварительно определенные значения.
Я уже читал этот ответ, который использует OpaqueToken
но в Angular он устарел. Эта статья объясняет различия, но она не дала полный пример, и мои попытки оказались безуспешными.
Вот что я попробовал (я не знаю, правильно ли это):
//ServiceAppSettings.ts
import {InjectionToken, OpaqueToken} from "@angular/core";
const CONFIG = {
apiUrl: 'http://my.api.com',
theme: 'suicid-squad',
title: 'My awesome app'
};
const FEATURE_ENABLED = true;
const API_URL = new InjectionToken<string>('apiUrl');
И это компонент, где я хочу использовать эти констант:
//MainPage.ts
import {...} from '@angular/core'
import {ServiceTest} from "./ServiceTest"
@Component({
selector: 'my-app',
template: '
<span>Hi</span>
' , providers: [
{
provide: ServiceTest,
useFactory: ( apiUrl) => {
// create data service
},
deps: [
new Inject(API_URL)
]
}
]
})
export class MainPage {
}
Но это не работает, и я получаю ошибки.
Вопрос:
Как я могу использовать "app.settings" значения угловым способом?
NB Конечно, я могу создать сервис Injectable и поместить его в провайдер NgModule, но, как я уже сказал, я хочу сделать это с помощью InjectionToken
, Angular.