gibi hizmetlerde parametreleri enjekte, kodumu görüyoruz. Temelde statik olarak yazılan yapılandırma sınıfları enjekte etmenizi sağlar.
1) app.config.ts
import { OpaqueToken } from "@angular/core";
export let APP_CONFIG = new OpaqueToken("app.config");
export interface IAppConfig {
apiEndpoint: string;
}
export const AppConfig: IAppConfig = {
apiEndpoint: "http://localhost:15422/api/"
};
2) app.module.ts
import { APP_CONFIG, AppConfig } from './app.config';
@NgModule({
providers: [
{ provide: APP_CONFIG, useValue: AppConfig }
]
})
3) your.service.ts
import { APP_CONFIG, IAppConfig } from './app.config';
@Injectable()
export class YourService {
constructor(@Inject(APP_CONFIG) private config: IAppConfig) {
// You can use config.apiEndpoint now
}
}
01:
başarıyla burada uygulanacak ve tüm ilgili koddur
Artık dize adlarını kullanmadan ve statik çekler için arabiriminizi kullanarak her yerde yapılandırmayı enjekte edebilirsiniz. Üretim ve geliştirmede farklı değerler sağlayabilmek için elbette Arabirimi ve sabiti daha da ayırabilirsiniz, örn.
Enjekte etmek yerine anında örnek oluyorsunuz. Bu rotaya gidersem, kurucuyu (özel myService: MyService) tercih ederim { myService.name = 'Angular2'; } 'aslında servise enjekte edildi. – gt6707a