最佳答案
我想添加一个 App Settings
部分到我的应用程序,它将包含一些常量和预定义的值。
我已经阅读了使用 OpaqueToken
的 这个答案,但它在角度上是不被推荐的。这个 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');
这就是我要使用这些常量的组成部分:
//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 {
}
但它不工作,我得到了错误。
Question:
如何以角度方式使用“ app.sets”值?
注意: 当然,我可以创建注入服务,并把它放在 NgModule 的提供商,但正如我所说,我想做的 InjectionToken
,角度的方式。