2016-11-15 106 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

回答