Angular6使用forRoot() 注冊單一實例服務問題
假如我們有一個shareModule來存放公用的組件(Component)、指令(Directive)、管道(Pipe)、服務(Service),為避免各個子模塊引用shareModule時造成App中有多個一樣的單一實例服務的問題。我們可以在shareModule中建立同意的App層級的服務。
ShareModule
import { NgModule, ModuleWithProviders } from '@angular/core';
@NgModule({
imports: [
HttpModule,
JsonpModule,
...
],
declarations: [
ShowItDirective,
...
],
exports: [
ShowItDirective,
...
]
})
export class ShareModule{
// 給shareModule添加forRoot
static forRoot(): ModuleWithProviders {
return {
ngModule: ShareModule,
providers: [
MessageService,
NotifyService,
... any service
],
};
}
}
AppModule
@NgModule({
declarations: [
AppComponent,
],
imports: [
// 使用
ShareModule.forRoot(),
],
providers: [
],
bootstrap: [AppComponent]
})
export class AppModule { }
這樣ShareModule中每一個service都只在app中注冊了一個實例,也避免了每次使用service都要provider的問題。
ERROR NullInjectorError: StaticInjectorError(AppModule)[SurveyComponent -> PermissionCheckerService]:
NullInjectorError: No provider for PermissionCheckerService!
總結
以上所述是小編給大家介紹的Angular6使用forRoot() 注冊單一實例服務問題,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
如果你覺得本文對你有幫助,歡迎轉載,煩請注明出處,謝謝!
相關文章
Angular2從搭建環(huán)境到開發(fā)步驟詳解
本文的內容主要是想幫助那些想學習Angular2的朋友們,因為我自己在玩Angular2時碰到了不少坑,而且Angular2語法一直處于變化中,讓人很頭疼。不過也怪不了Anguar2,因為它現(xiàn)在是處于并長期處于alpha階段,下面就通過本文來學習Angular2的搭建環(huán)境和開發(fā)吧。2016-10-10
AngularJS通過ng-route實現(xiàn)基本的路由功能實例詳解
這篇文章主要介紹了AngularJS通過ng-route實現(xiàn)基本的路由功能,結合實例形式詳細分析了AngularJS使用ng-route實現(xiàn)路由功能的操作步驟與相關實現(xiàn)技巧,需要的朋友可以參考下2016-12-12
Commands Queries設計模式提高Angular應用性能及可維護性
在Angular應用開發(fā)領域,Commands and Queries 設計模式是一個關鍵的概念,它有助于有效地管理應用程序的狀態(tài)和與后端的交互,本文將深入探討這一設計模式的核心要點,并通過實際示例來加以說明2023-10-10

