私は以下のように定義されたサービスを持っています。Angular2コンポーネントがコンストラクタでサービスを受け取ることができません
import { Injectable } from "@angular/core";
import { Http } from "@angular/http";
@Injectable()
export class SirService {
constructor(private http: Http) {
console.log("The http is: " + http);
}
stuff() { return ["uno", "duo", "tress"]; }
}
次に、私のコンポーネントのプロバイダをこのようなサービスに設定します。
import { Component } from "@angular/core";
import { SirService } from "../app.service";
@Component({
selector: "demo",
providers: [SirService],
template: require("./demo.html"),
styles: [require("./common.scss")]
})
export class Demo {
// constructor() {
constructor(private service: SirService) {
console.log("Service: " + service);
}
}
でも、私は、サービスにstuff()
コールにアクセスする方法を不確実です。上記のことは、Angularが私のコンストラクタにプッシュする意味のあるものを見つけることができなかったというエラーを生成します。パラメータのないコンストラクタを使用すると、私はそのサービスへの参照がありません。モジュールの代わりにコンポーネントのためにこれを行う方法を示すいくつかの例があるようです...(私は愚かにグーグルであるかもしれません...)
エラーメッセージは膨大ですが、これは最もです関連する部分(私が知る限り)。
未処理プロミス拒否:Http! ;ゾーン:角度;タスク:Promise.then;値:
で
詳しい説明を。完全で正確なエラー。 –
@JBNizet私はこのようなエラーについては尋ねていませんでした。なぜなら、私はリソースと比較すると構文が正しいと思われているからですが、私はそれが使用に同意するでしょう。 5分で編集をご覧ください。ポインタありがとう。 –
@JBNizetが掲載されています。それは完全なコンテンツが表示するには大きすぎますが、編集は興味深い部分を示しています。 –