我有一个有趣的问题。我有 2 个模块。app.module.ts (AppModule) 和 Listings.module.ts (ListingsModule)。ListingsModule 有一个服务,我们称之为服务 A。A 需要是一个单例全局服务,这意味着所有其他组件和服务都需要能够与同一个 A 交互。
为此,我首先尝试在 ListingsModule 中将 A 声明为提供程序,但这并没有按预期工作,因为它仅被声明为用于 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 那么它会给我另一个错误。我显然只能提供这项服务。
这里的正确方法是什么?我该如何进行这项工作?