如何将服务注入到角度常量中



我正在尝试以角度导出一个常量,我需要设置一个键,其值将从服务返回。我尝试使用以下代码:

这是我的用户配置.ts文件:

export const USER_CONFIG = {
username: new UserService().getUsername()
}

这是我的用户服务文件,我希望以常量注入:

export class UserService{
constructor(someOtherService: SomeOtherService)
getUsername() {
return this.someOtherService.getDetails('some/url')
}
}

我无法解决此问题。 需要帮助。

Angular 中的常量可以使用 InjectionToken 构造:

export const USER_CONFIG = new InjectionToken('User Configuration', {
factory: () => {
return {
// You can inject the UserService to get the username
username: inject(UserService).getUsername()
}
}
});

由于常量是注入令牌,因此可以将其注入到应用程序的其他部分中:

export class AppComponent {
constructor(@Inject(USER_CONFIG) config) {
console.log(config.username)
}
}

堆栈闪电战示例

试试这个。您必须传递服务实例

const va = (userService : UserService) => {
return {
username : userService.getUsername()
}
}
export const eV = va(userService)

最新更新