在Angular 6中,默认情况下,依赖注入的服务是以单例模式提供的。这意味着无论在应用程序中使用多少次,都只会创建一个实例。
然而,如果你希望将服务配置为每次注入时都创建一个新的实例,你可以使用工厂模式来实现。
下面是一个示例,演示了如何使用工厂模式创建Angular 6服务的多个实例:
import { Injectable } from '@angular/core';
import { MyService } from './my-service';
@Injectable()
export class MyServiceFactory {
create(): MyService {
// 在这里根据需要创建新的服务实例
return new MyService();
}
}
providers
数组中,将工厂类注册为服务的提供者。import { NgModule } from '@angular/core';
import { MyServiceFactory } from './my-service-factory';
@NgModule({
providers: [
MyServiceFactory
]
})
export class AppModule { }
import { Component } from '@angular/core';
import { MyServiceFactory } from './my-service-factory';
@Component({
selector: 'app-my-component',
template: `
`
})
export class MyComponent {
constructor(private serviceFactory: MyServiceFactory) { }
createNewInstance() {
const serviceInstance = this.serviceFactory.create();
// 使用新的服务实例进行操作
}
}
通过以上步骤,你可以在每次调用create()
方法时创建一个新的服务实例,而不是使用单例模式。