gpt4 book ai didi

javascript - 使用 InjectionToken 进行注入(inject)?

转载 作者:行者123 更新时间:2023-12-01 01:16:35 27 4
gpt4 key购买 nike

尝试使用 InjectionToken 注入(inject)对象。

AppModule中我有:

    export const tokenConfigKey = new InjectionToken('config');

const tokenBasedConfig = {
provide: tokenConfigKey,
useValue: {
key: 'value'
}
}

AppComponent中:

    @Component({
selector: 'my-app',
template:`<h1>Hello Angular Lovers!</h1>`
})
export class AppComponent {
constructor(@Inject('config') config,
@Inject(tokenConfigKey) configByToken) {
}
}

This is a complete stacblitz example

使用字符串 key 的注入(inject)正在通过,但使用 token 的注入(inject)失败。有什么想法吗?

文章

Here's an article in case anyone wants to play with this

最佳答案

由于 AppModule 导入 AppComponent 并且 AppComponent 导入 InjectionToken,因此可能存在循环依赖问题>应用程序模块

将 token 移至单独位置可以解决问题:

token.ts

import { InjectionToken } from '@angular/core';
export const BASE_URL = new InjectionToken<string>('BaseUrl');

app.module.ts

@NgModule({
providers: [{ provide: BASE_URL, useValue: { key: 'http://localhost' } }],

app.component.ts

 constructor(@Inject(BASE_URL) configByToken) {
console.log(configByToken);
}

关于javascript - 使用 InjectionToken 进行注入(inject)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54701579/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com