I'm trying to export a constant in angular and I need to set a key whose value will be returned from a service. I tried with following code:
This is my user-config.ts file:
export const USER_CONFIG = {
username: new UserService().getUsername()
}
And this is my UserService file that I would like to be injected in constant:
export class UserService{
constructor(someOtherService: SomeOtherService)
getUsername() {
return this.someOtherService.getDetails('some/url')
}
}
I'm not able to work around this problem. Need help.
Constants in Angular may be constructed using InjectionToken:
export const USER_CONFIG = new InjectionToken('User Configuration', {
factory: () => {
return {
// You can inject the UserService to get the username
username: inject(UserService).getUsername()
}
}
});
Since the constant is an injection token, it can be injected in other parts of your application:
export class AppComponent {
constructor(@Inject(USER_CONFIG) config) {
console.log(config.username)
}
}
StackBlitz Example
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With