2016-11-15 7 views
0

TL:DR:プライベートコンストラクタのパラメータを使用しようとしたときにエラーSupplied parameters do not match any signatures of call targetが発生しました。 constructor (private http: Http) {}コンストラクタのプライベートパラメータとのパラメータの不一致

Angular2でプライベートパラメータを設定するときに問題があります。私は、プロパティがコンストラクタ内でプライベートとして宣言されている場合、それを渡す必要はないと考えていました。これは私には奇妙に思えますが、これについての私の理解は間違っていると思っています。そうでなければ示唆する。ここで私が何を意味するかの例です:

constructor (private http: Http) {} HTTPプロパティhttps://angular.io/docs/ts/latest/guide/server-communication.html

からその後、しかし、私はすべての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){ 
 
    } 
 

 
}

は、私は、エラーの同じ種類を取得します私がconstruでprivate http: Httpを使用しようとするとカードサービスのctor。どんな助けでも大歓迎です!


EDIT:ここに は私NgModuleです:

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

+0

は、あなたのNgModuleにHttpModuleををインポートしましたか? – MatWaligora

+0

@MatWaligoraありがとう、今NgModuleを表示する質問が更新されました – OliverRadini

+0

どこでエラーが発生していますか?あなたは[mcve]の多くを与えることができますか?依存関係の注入は本当にうまくいくはずですが、新しいインスタンスを作成しようとすると、問題が発生する可能性があります。 – jonrsharpe

答えて

0

私はあなたが単にnew Gallery()を作成することはできませんだと思う、あなたはあなたのための1つを取得するために、関連するインジェクタを依頼する必要があるだろうあなたがのコンストラクタ関数に何らかのパラメータを送信していないので、これはインジェクタの仕事です。

ここまで読む:https://angular.io/docs/ts/latest/guide/dependency-injection.html

関連する問題