Angular Не удается разрешить все параметры

Привет, у меня есть эта ошибка от углового Can't resolve all parameters for RoomService: (?)., у меня есть эти два файла, это служба.

room.service.ts

import { Injectable } from '@angular/core';
import { ResourceService } from './resource.service';
import { Http } from '@angular/http';
import { CONFIG as APP_CONSTANTS } from '../config/config';

@Injectable()
export class RoomService extends ResourceService {

  constructor(http) {
    super(http);
  }

}

app.module.ts

import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';

// Angular Material
import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
import { MaterialComponents } from '../ngcomponents/material.component';

import { AppRoutingModule } from './app-routing.module';

// Components
import { AppComponent } from './app.component';
import { RoomlistComponent } from './components/roomlist/roomlist.component';

// services
import { HttpModule } from '@angular/http';
import { RoomService } from './services/room.service';

@NgModule({
  declarations: [
    AppComponent,
    RoomlistComponent
  ],
  imports: [
    BrowserModule,
    AppRoutingModule,
    HttpModule,
    BrowserAnimationsModule,
    MaterialComponents
  ],
  providers: [RoomService],
  bootstrap: [AppComponent]
})
export class AppModule { }

и я понятия не имею, в чем может быть проблема, любая идея, на всякий случай, поскольку вы можете видеть, что RoomService расширяется из другого файла resourceService. Я не знаю, проблема ли в этом, но я так не думаю.


person Miguel Frias    schedule 25.10.2017    source источник


Ответы (3)


конструктор должен иметь http параметр типа Http. О чем узнает Dependency Resolver, он должен создать токен Http инжектора.

constructor(http: Http) {
   super(http);
}
person Pankaj Parkar    schedule 25.10.2017

Angular не может понять, что передать, потому что http не имеет аннотации типа

constructor(http) {

Если вы измените его на

constructor(http:Http) {

и добавьте HttpModule к imports: [...] из AppModule, должно получиться. Вам также необходимо добавить импорт TypeScript для Http.

Смотрите также

person Günter Zöchbauer    schedule 25.10.2017

в вашем roomService, вы DI должны быть

 constructor(http: Http) {
    super(http);
  }
person sheplu    schedule 25.10.2017