gpt4 book ai didi

angular - 如何更新依赖注入(inject) token 值

转载 作者:太空狗 更新时间:2023-10-29 17:10:06 25 4
gpt4 key购买 nike

Angular 依赖项注入(inject)让您可以使用 token 而不是服务类来注入(inject)字符串、函数或对象。

我在我的模块中这样声明它:

providers: [{ provide: MyValueToken, useValue: 'my title value'}]

我这样使用它:

constructor(@Inject(MyValueToken) my_value: string) {
this.title = my_value;
}

但是,如何更新组件的值并让其他组件每次都获取新值?换句话说,我想模拟使用类似 BehaviorSubject 的东西来发出和接收值的功能。

如果这不可能,那么如果它们仅提供静态数据,那么这些注入(inject)标记值的用途是什么,因为我可以简单地在我的组件中声明静态值并直接使用它。

最佳答案

您可以使用 BehaviorSubject 代替不可变的原语,然后在一个组件中访问和更新它并在另一个组件中订阅:

export const MY_VALUE_TOKEN = new InjectionToken<BehaviorSubject<string>>('my.Value.token')
providers: [{ provide: MY_VALUE_TOKEN, useValue: new BehaviorSubject('')}]

// consumer
constructor(@Inject(MY_VALUE_TOKEN) my_value: BehaviorSubject<string>) {
my_value.subscribe((my_value)=>this.title = my_value);
}

// producer
constructor(@Inject(MY_VALUE_TOKEN) my_value: BehaviorSubject<string>) {
my_value.next('my title value');
}

关于angular - 如何更新依赖注入(inject) token 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46755241/

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