jsg*_*pil 5 dependency-injection angular angular7
我正在动态创建元素,其中一个元素使用@Inject解析为工厂的令牌。
问题在于工厂实例缓存在节点索引上。一旦我的元素从视图中消失并返回,我希望能够调用我的工厂函数;但我不。相反,我得到了这个工厂实例的缓存版本。
如何确保对象从视图中消失后不使用缓存?
基本上,当我的@Component构造函数被调用时,我期望一个全新的服务。不是缓存服务。
@Inject(FORM_GROUP_MANAGER_SERVICE)
private formGroupManagerService: FormGroupManagerServiceImpl
Run Code Online (Sandbox Code Playgroud)
{
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]]
},
Run Code Online (Sandbox Code Playgroud)
在 Angular repo 中确实有一个功能请求,但现在我可以想到两种方法:
直接注入工厂方法而不是它的解析实例。这样,它的客户端就可以自行解析实例,从而使其对解析对象的生命周期负责。
如本次闪电战所示,在指令/组件级别注册工厂提供者
| 归档时间: |
|
| 查看次数: |
1016 次 |
| 最近记录: |