Açısal 2 Opak Sabitler olarak adlandırılan çok hoş bir özellik sunar. Bir sınıf oluşturun ve opak sabitleri kullanarak tüm sabitleri tanımlayın.
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 içindeki sağlayıcılara enjekte edin
Her bileşende kullanabilirsiniz.
Açısal 4 için DÜZENLE:
Açısal 4 için yeni konsept Enjeksiyon Simgesi ve Opak belirteç Açısal 4'te kaldırılmıştır.
Enjeksiyon Jetonu Opak Jetonların üstüne işlevler ekler, TypeScript jenerikleri ve ayrıca Enjeksiyon jetonları ile jetona tür bilgisi eklemenize izin verir, @Inject ekleme ihtiyacını ortadan kaldırır
Örnek Kod
Açısal 2 Opak Jetonları Kullanma
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
]
}
]
Açısal 4 Enjeksiyon Jetonlarını Kullanma
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!
]
}
]
Enjeksiyon belirteçleri, Opak belirteçlerin üstünde mantıksal olarak tasarlanmıştır ve Opak belirteçler Açısal 4'te kullanımdan kaldırılmıştır.
export
önce anahtar kelimeyiclass
yanı sırapublic static
daha öncereadonly
anahtar kelime. Buraya bakın: stackoverflow.com/a/22993349