我想添加一個App Settings
部分到我的應用程序,它將包含一些常量和預定義的值。App.settings - 角度的方式?
我已閱讀this answer其中使用OpaqueToken
但它已在Angular中棄用。這article解釋的差異,但它沒有提供一個完整的例子,我的嘗試是不成功的。
這裏是我試過(我不知道這是否是正確的方式):
//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');
而這正是我想用這些consts組件:
//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當然,我可以創造注射服務,並把它放在NgModule的供應商,但正如我說我想InjectionToken
,角度的方式來做到這一點。
你可以檢查我的答案[這裏](http://stackoverflow.com/questions/34986922/ define-global-constants-in-angular-2/43439599#43439599)基於當前官方文檔 – JavierFuentes
@ javier no。如果兩個供應商提供相同的名稱,則您的鏈接有問題,因此您現在有問題。 Entring opaquetoken –
你知道[OpaqueToken已被棄用]。 (https://angular.io/api/core/OpaqueToken)[本文](https://blog.thoughtram.io/angular/2016/05/23/opaque-tokens-in-angular-2.html )談到如何防止角提供商名稱衝突 – JavierFuentes