我有一個有趣的問題。我有2個模塊。 app.module.ts(AppModule)和listing.module.ts(ListingsModule)。 ListingsModule有一項服務,我們稱之爲服務A.需要成爲單件全球服務,這意味着所有其他組件和服務都需要能夠與同一個服務器進行交互。Angular2從子模塊導入並聲明全局服務
爲此我首先嚐試聲明A是ListingsModule中的提供者,但是這並沒有像預期的那樣工作,因爲它只是被聲明爲用於組件和服務在ListingsModule下的單例,但我還需要在其他模塊和AppModule下使用它。我因此得出結論:我需要從ListingsModule中導出此服務並導入,並在AppModule下提供此操作,但這並未按預期工作。
A是ListingsStoreService。
//Stores
import { ListingsStoreService } from './shared/listings-store.service';
//Modules
import { SharedModule } from './../shared/shared.module';
import { HeaderModule } from './../header/header.module';
@NgModule({
imports: [
SharedModule,
HeaderModule,
ListingsRoutingModule
],
declarations: [
ListingsComponent
],
exports: [
ListingsStoreService
],
providers: [ ]
})
export class ListingsModule {
}
以下代碼要求我聲明或導入ListingsStoreService,因爲它是可導出的。如果我聲明ListingsStoreService,那麼它給了我另一個錯誤。我顯然只能提供這項服務。
這裏的正確方法是什麼?我如何完成這項工作?
添加提供商'forRoot()'https://angular.io/docs/ts/latest/guide/ngmodule.html#!#core-for-root並導入'SharedModule.forRoot( )'在'AppModule的'進口中:[]' –