加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

angular – 无法解析UserService的所有参数:( Http ,?)

发布时间:2020-12-17 17:27:18 所属栏目:安全 来源:网络整理
导读:我的项目工作正常,直到我升级到最近的Angular2版本2.0.0-beta.17 我的UserService是这样的 import { Injectable} from '@angular/core';import { Http } from '@angular/http';import { BaseService } from './base.service';import { SubDomain } from './.
我的项目工作正常,直到我升级到最近的Angular2版本2.0.0-beta.17

我的UserService是这样的

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是这样的

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
  ) {
  }
}

我查找了解决方案,但大多数是关于使服务可注射,但在这里我遵循相同的约定,但仍然是它给出了错误

Uncaught Error: Can’t resolve all parameters for UserService: (Http,?).

我的AppModule是这样的

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是这样的

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语句造成的

import { SubDomainService} from './index';

你可能从另一个文件导出SubDomainService,例如index.ts,考虑直接从它自己的文件导入服务.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读