Интересно, почему провайдеры в Angular не должны экспортироваться, тогда как компоненты, директивы и каналы должны экспортироваться. Итак, следующий код работает отлично:
@NgModule({
exports: [],
providers: [
GreeterService
]
})
export class SharedModule {
}
Если я пытаюсь добавить GreeterService
в список экспорта, конечно, я получаю ошибку:
Can't export value GreeterService from SharedModule as it was neither declared nor imported!
Но почему это? Почему провайдеры работают напрямую, когда я импортирую модуль, в котором они предоставляются, а компоненты, директивы и каналы должны быть явно экспортированы?