2016-11-15 98 views
0

TL:DR:在尝试使用私有构造函数参数即获取错误Supplied parameters do not match any signatures of call targetconstructor (private http: Http) {}参数与构造函数中的私有参数不匹配

我在设置Angular2中的私有参数时遇到了一些麻烦。我曾经想过,当一个属性在构造函数中声明为私有时,它不需要传入。这对我来说似乎很奇怪,我猜我对此的理解是错误的,但是我找不到任何信息否则有建议。下面是我的意思的例子:

constructor (private http: Http) {}https://angular.io/docs/ts/latest/guide/server-communication.html

在HTTP属性届时提及,但我没有看到其他地方传递任何HTTP实例。

我试图实现相同的事情,但我得到以下错误: Supplied parameters do not match any signatures of call target,暗示,似乎是,一个Http实例需要传递给构造函数。

该程序是为'卡''画廊'。这些卡片是从使用Http的'CardService'交付的。此代码目前在该行引发错误mainGallery: Gallery = new Gallery();

import { Component } from '@angular/core'; 
 
import { Gallery } from './gallery'; 
 
import { CardService } from './card.service'; 
 

 
@Component({ 
 
    selector: 'app-root', 
 
    templateUrl: './app.component.html', 
 
    styleUrls: ['./app.component.css'], 
 
    providers: [ CardService ] 
 
}) 
 
export class AppComponent { 
 
    title = 'app works!'; 
 
    
 
    mainGallery: Gallery = new Gallery(); 
 
}

这里是画廊的外观:

@Component({ 
 
    providers: [CardService] 
 
}) 
 
export class Gallery{ 
 
    cards: Card[] = []; 
 

 
    constructor(private cardService: CardService){ 
 
    } 
 

 
}

我也得到了同样类型的错误如果我尝试在构造中使用private http: Http卡服务。任何帮助深表感谢!


编辑: 这是我的NgModule:

@NgModule({ 
 
    declarations: [ 
 
    AppComponent 
 
    ], 
 
    imports: [ 
 
    BrowserModule, 
 
    FormsModule, 
 
    HttpModule 
 
    ], 
 
    providers: [], 
 
    bootstrap: [AppComponent] 
 
})

+0

你导入的HttpModule你NgModule? – MatWaligora

+0

@MatWaligora谢谢,现在更新了问题,以显示我的NgModule – OliverRadini

+0

你在哪里得到这个错误?你能给更多[mcve]吗?依赖注入的确应该起作用,但如果你尝试自己创建一个新的实例,你可能会遇到问题。 – jonrsharpe

回答