У меня есть AppModule
который импортирует CoreModule
. Purpouse из CoreModule
является обращаться с услугами доступа к данным, так CoreModule
обеспечивает UserService
, PlansService
и так далее:Angular2: Unhandled Promise rejection: Нет провайдера для @Injectable
@NgModule({
providers: [
UsersService,
PlansService,
{
provide: LocationStrategy,
useClass: ('production' === ENV ? HashLocationStrategy : PathLocationStrategy)
}
]
})
export class CoreModule { }
Так на AppModule
я импортировать его:
@NgModule({
bootstrap: [ App ],
declarations: [
App,
ErrorComponent
],
imports: [
BrowserModule,
FormsModule,
HttpModule,
CoreModule, <<<<<<<<<<<<<<<<<<
RouterModule.forRoot(ROUTES, { useHash: true })
]
})
export class AppModule {
Тем не менее, на LoginComponent
угловом говорит я не получаю провайдера для UserService
:
@Component({
...
})
export class LoginComponent implements OnInit {
constructor(private commty: UsersService)
LoginModule
загружается lazyly в соответствии с его конфигурацией маршрутизатора и это:
export const routes = [
{ path: '', component: LoginComponent, pathMatch: 'full' }
];
@NgModule({
declarations: [
LoginComponent
],
imports: [
CommonModule,
ReactiveFormsModule,
AlertModule,
RouterModule.forChild(routes),
],
})
export default class LoginModule {
static routes = routes;
}
Что я делаю неправильно? Нужно ли мне import
CoreModule
innto LoginModule? Если я это сделаю, то как насчет CoreModule
экземпляров? Загружается ли он дважды?
Это ошибка, я получаю от углового:
Unhandled Promise отказ: Нет кормильцем UsersService!
Да, вы должны импортировать CoreModule в LoginModule, потому что нет никакого отношения между ними. Это должен быть только один экземпляр, но вы можете его протестировать. –
Спасибо @Igor. Он все еще не работает. Сообщение одно и то же. – Jordi
У вас есть аннотация @Injectable() на ваших классах XxxService? –