У меня есть интересный вопрос. У меня есть 2 модуля. app.module.ts (AppModule) и listings.module.ts (ListingModule). В ListModule есть услуга, позвольте нам назвать ее службой A. Необходимо быть одним глобальным сервисом, что означает, что все остальные компоненты и службы должны иметь возможность взаимодействовать с тем же A.Angular2 импортирует и объявляет глобальное обслуживание от подмодуля
Для этого я сначала попробовал объявив A в качестве поставщика в ListModule, но это не сработало так, как ожидалось, поскольку оно было объявлено только для использования для компонентов и сервисов в ListModule, но мне также нужно было использовать его под другими модулями и в AppModule. Таким образом, я пришел к выводу, что мне нужно экспортировать эту услугу из «Линейного Модуля» и импортировать и предоставить это в AppModule, но это не сработало, как ожидалось.
А является листингStoreService.
//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 {
}
Следующий код просит меня объявить или импортировать PropertyStoreService, чтобы он был доступен для экспорта. Если я объявлю SubmitStoreService, это даст мне еще одну ошибку. По-видимому, я могу предоставить эту услугу.
Каков правильный подход? Как это сделать?
Добавить поставщиков в 'forRoot()' https://angular.io/docs/ts/latest/guide/ngmodule.html#!#core-for-root и импортировать 'SharedModule.forRoot () 'в' AppModule 'import: []' –