无法解析UserService的所有参数:(Http,?) [英] Can't resolve all parameters for UserService:(Http, ?)
问题描述
在我升级到最新的Angular2版本2.0.0-beta.17之前,我的项目运行良好
My project was working fine until i upgraded to recent Angular2 version 2.0.0-beta.17
我的UserService就是这样
My UserService is like this
import { Injectable} from '@angular/core';
import { Http } from '@angular/http';
import { BaseService } from './base.service';
import { SubDomain } from './../interfaces/subdomain.interface';
import { SubDomainService} from './index';
@Injectable()
export class UserService extends BaseService {
subDomain: SubDomain;
constructor(
private _http: Http,
private subDomainService: SubDomainService
) {
super();
this.subDomain = subDomainService.subDomain;
}
}
和SubDomainService就是这样
and SubDomainService is like this
import { Injectable } from '@angular/core';
import { SubDomain } from './../interfaces/subdomain.interface';
import { CompanyService } from './company.service';
@Injectable()
export class SubDomainService {
subDomain: SubDomain = {
exists: false,
is_sub_domain_url: false,
sub_domain: '',
company_id: '',
user_id: '',
name:''
};
constructor(
private _companyService: CompanyService
) {
}
}
我在寻找解决方案,但大多数解决方案都是关于使服务可注入的,但在这里我遵循相同的约定,但是仍然会给出错误信息
I looked up for solutions but most of them were about making a service injectable but here i followed the same convention but stilll it's giving the error
未捕获的错误:无法解析UserService的所有参数:(Http,?).
Uncaught Error: Can't resolve all parameters for UserService: (Http, ?).
我的AppModule就是这样
My AppModule is like this
import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
import { CoreModule } from './core.module';
import { AppComponent } from './app.component';
import { routes } from './config/routes/index';
@NgModule({
declarations: [
AppComponent
],
imports: [
routes,
BrowserModule,
CoreModule.forRoot()
],
bootstrap: [AppComponent]
})
export class AppModule { }
CoreModule就是这样
CoreModule is like this
import {ModuleWithProviders, NgModule, Optional, SkipSelf } from '@angular/core';
import {
SubDomainService,
CompanyService,
UserService
} from './shared/services/index';
import {SharedModule} from './shared/modules/shared.module';
@NgModule({
exports: [SharedModule]
})
export class CoreModule {
static forRoot(): ModuleWithProviders {
return {
ngModule: CoreModule,
providers: [SubDomainService,UserService,CompanyService]
};
}
constructor( @Optional() @SkipSelf() parentModule: CoreModule) {
if (parentModule) {
throw new Error('CoreModule is already loaded. Import it in the AppModule only');
}
}
}
推荐答案
这可能是由于该import语句
This might be due to this import statement
import { SubDomainService} from './index';
您可能正在从其他文件(例如本例中的index.ts)导出SubDomainService,考虑直接从其自己的文件中导入服务.
you might be exporting SubDomainService from a different file i.e. index.ts in your case, consider importing service directly from it's own file.
这篇关于无法解析UserService的所有参数:(Http,?)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!