通过Injector.create(...)创建的动态创建的注入器在不再需要时会被自动销毁。下面是一个包含代码示例的解决方法:
import { Injectable, Injector } from '@angular/core';
@Injectable()
export class MyService {
constructor() {
console.log('MyService created');
}
}
@Injectable()
export class MyComponent {
constructor(private injector: Injector) {
console.log('MyComponent created');
}
createDynamicInjector() {
// 创建动态注入器
const dynamicInjector = Injector.create([
{ provide: MyService, useClass: MyService }
], this.injector);
// 使用动态注入器获取服务实例
const myService = dynamicInjector.get(MyService);
// 使用服务实例执行操作
myService.doSomething();
}
}
在上面的代码中,我们创建了一个动态注入器dynamicInjector
,并使用它来获取MyService
的实例myService
。当不再需要动态注入器时,它会被自动销毁。
注意:在实际应用中,通常情况下不需要手动创建动态注入器。Angular框架会自动处理依赖注入的生命周期管理。以上示例仅为了演示如何使用动态注入器。