角度2以上では、すべてのhttpコールをサービス内に追加します。しかし、あなたのエラーを修正するには、これを試してください。
import { Component, OnInit } from '@angular/core';
import { Http } from '@angular/http';
@Component({
selector: 'app-home',
templateUrl: './home.component.html',
styleUrls: ['./home.component.scss']
})
export class HomeComponent implements OnInit {
results: any;
constructor(private http: Http) { }
restCall(term:string, id:string) {
let promise = new Promise((resolve, reject) => {
let apiURL = `http://localhost:3000/todos$/{term}/${id}`;
this.http.get(apiURL)
.toPromise()
.then(
res => { // Success
this.results = res.json().results;
resolve();
},
msg => { // Error
reject(msg);
}
);
});
return promise;
}
}
私はHttpサービスをインポートし、コンストラクタ内で宣言しました。 結果変数はローカル変数ではないので、コンストラクタの前に宣言する必要があります。
TypeScriptを使用しているため、実際に型メンバーを宣言する必要があります。 'http'も' results'も定義されていませんので、もちろんそれらのコンパイラエラーを取得します。 HTTPオブジェクトを取得するには、依存関係注入を介して* Httpを注入する必要があることに注意してください。 Angularマニュアルを確認してください。 – poke
ありがとうございました。ドキュメントはかなり悪いです。 – tatsu
[HttpClientのガイド](https://angular.io/guide/http)は実際にはかなり徹底的です。 – poke