Angular 文档 recommend向容器注册服务 1) 通常在根范围内,或 2) 在特定模块的范围内。
所以在一般情况下,像这样:
@Injectable({ providedIn: "root" })
但是我看到很多这样的代码:
@Injectable()
那么,该服务将在哪个范围内注册?不指定范围会产生什么影响?这会如何影响 Tree Shaking?
最佳答案
对于@Injectable()
,它在providers
数组的组件级别或模块级别注册
组件级别:
@Component({
selector: 'my-app',
template: '<h1>{{ title }}</h1>',
providers: [ExampleService]
})
模块级别:
@NgModule({
//other metadata properties
providers: [ExampleService]
})
关于Angular 服务注册到容器但未指定 "providedIn",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56664732/