Можно ли в любом случае предотвратить внедрение службы за пределы исходного модуля?
Скажем, что мы загружаем projects.module.ts
лениво, а ProjectsModule
импортирует ProjectsStoreModule
. У меня есть служба, определенная в ProjectsStoreModule
, которую я не хочу вводить в ProjectsModule
, но это нормально, если ее вводить в любом месте внутри ProjectsStoreModule
. Мне было интересно, есть ли способ достичь этого?
Примечание: ProjectsStoreModule
не имеет компонентов, поэтому я не могу предоставить услугу компоненту. Служба, которую я хочу изолировать, будет добавлена в эффект Ngrx, который является службой.
Что я сделал:
Я зарегистрировал ProjectsService
:
@Injectable({
providedIn: ProjectsStoreModule
})
export class ProjectsService {
...
}
ProjectsModule:
@NgModule({
...
})
export class ProjectsModule {
...
imports: [ProjectsStoreModule]
}
Этот подход, очевидно, вызвал столько Circular dependency
предупреждений.
Затем я попытался зарегистрировать ProjectsService
в @NgModule
decorator:
@NgModule({
...
providers: [ProjectsService]
})
export class ProjectsStoreModule {
...
}
Теперь проблема в том, что при импорте ProjectsStoreModule
в ProjectsModule
служба, которую я хотел сделать внутренней, будет доступна в ProjectsModule
.
Любая помощь будет принята с благодарностью.