gpt4 book ai didi

angular - 如何清除提供者缓存以在 Angular 7 中与 useFactory 一起使用

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

我正在动态创建元素,其中一个元素正在使用 @Inject解析为工厂的 token 。

问题是工厂实例缓存在节点索引上。一旦我的元素从 View 中消失并返回,我希望得到对我的工厂函数的调用;但我不。相反,我得到了这个工厂实例的缓存版本。

enter image description here

对象从 View 中消失后,如何确保不使用缓存?

基本上,当我的 @Component构造函数被调用,我期待一个全新的服务。不是缓存服务。

@Inject(FORM_GROUP_MANAGER_SERVICE)
private formGroupManagerService: FormGroupManagerServiceImpl
{
provide: FORM_GROUP_MANAGER_SERVICE,
useFactory: (structureControlService, createTonicControlFactory, parent) => new FormGroupManagerService(
structureControlService,
createTonicControlFactory,
parent
),
deps: [StructureControlService, FORM_GROUP_MANAGER_SERVICE_CREATE_CONTROL, [new Optional(), FormGroupManagerService]]
},

最佳答案

确实有这个 in the angular repo 的功能请求,但现在我可以想到两种方法:

  • 直接注入(inject)工厂方法而不是它的解析实例。这样,它的客户端可以自己解析实例,使其也对解析对象的生命周期负责。
  • 将指令/组件级别的工厂提供商注册为 in this blitz
  • 关于angular - 如何清除提供者缓存以在 Angular 7 中与 useFactory 一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54726855/

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