在Angular 8中,可以使用providedIn
属性来配置一个服务的注入方式。默认情况下,服务是以单例模式注入的,这意味着在整个应用程序中只会创建一个实例。但是,如果你想在每次需要时都创建一个新的实例,可以将服务的providedIn
属性设置为'root'
,然后在每个组件中手动注入该服务。
以下是一个示例代码:
MyService
的服务,并将providedIn
属性设置为'root'
,这样它将在根注入器中注册为单例服务。// my.service.ts
import { Injectable } from '@angular/core';
@Injectable({
providedIn: 'root'
})
export class MyService {
// Service logic here
}
// my.component.ts
import { Component } from '@angular/core';
import { MyService } from './my.service';
@Component({
selector: 'app-my-component',
template: ''
})
export class MyComponent {
constructor(private myService: MyService) {}
createNewInstance() {
const newServiceInstance = new MyService(); // 创建新的服务实例
// 使用新的服务实例进行操作
}
}
在上面的示例中,当点击按钮时,将创建一个新的MyService
实例,并且你可以在createNewInstance()
方法中使用新实例进行操作。这样可以确保每次需要时都会创建一个新的服务实例。