在Angular中,Service默认是以单例的形式提供的,即每个Service只会有一个实例。但是,如果希望创建多个Service实例,可以通过以下方法解决:
@Injectable({
providedIn: 'root'
})
export class MyService {
constructor() { }
createInstance(): MyService {
return new MyService();
}
}
在使用Service的组件中,通过调用工厂函数来创建新的Service实例:
@Component({
selector: 'app-my-component',
template: `
`
})
export class MyComponent {
constructor(private myService: MyService) { }
createNewInstance() {
const newServiceInstance = this.myService.createInstance();
// 使用新的Service实例
}
}
providedIn: 'any'
来提供Service:@Injectable({
providedIn: 'any'
})
export class MyService {
constructor() { }
}
这样,每次需要使用Service的地方,都会创建一个新的Service实例。
请注意,使用上述方法创建的Service实例,并不会自动在整个应用程序中共享数据。每个实例都是独立的,需要自行处理数据共享的逻辑。
上一篇:Angular Service - 子类构造函数是否必需或无法解析所有参数的 ClassName (?)
下一篇:Angular Service Worker - 在PurifyCSS后dist/styles.*.css的哈希不匹配