关于 Angular 服务实例作用域的问题 - 使用组件限定服务提供者的作用域
官方鏈接
一種限定提供者作用域的方式是把要限定的服務(wù)添加到組件的 providers 數(shù)組中。組件中的提供者和 NgModule 中的提供者是彼此獨立的。 當你要急性加載一個自帶了全部所需服務(wù)的模塊時,這種方式是有幫助的。 在組件中提供服務(wù),會限定該服務(wù)只能在該組件及其子組件中有效,而同一模塊中的其它組件不能訪問它。
例子:BudgetItemService 只在 BudgetFormComponent 及其子組件內(nèi)有效:
通常,要在根模塊中提供整個應(yīng)用都需要的服務(wù),在惰性加載模塊中提供限定范圍的服務(wù)。
路由器工作在根級,所以如果你把服務(wù)提供者放進組件(即使是 AppComponent)中,那些依賴于路由器的惰性加載模塊,將無法看到它們。
當你必須把一個服務(wù)實例的作用域限定到組件及其組件樹中時,可以使用組件注冊一個服務(wù)提供者。 比如,用戶編輯組件 UserEditorComponent,它需要一個緩存 UserService 實例,那就應(yīng)該把 UserService 注冊進 UserEditorComponent 中。 然后,每個 UserEditorComponent 的實例都會獲取它自己的緩存服務(wù)實例。
總結(jié)
以上是生活随笔為你收集整理的关于 Angular 服务实例作用域的问题 - 使用组件限定服务提供者的作用域的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SAP Spartacus 中的依赖注入
- 下一篇: 几款流行文章编辑器性能评测报告(转)