Http StaticInjectorError のプロバイダがない。
2023-08-16 19:11:51
質問
apiからデータを取得し、ionicアプリに入力しようとしていますが、データが入力されるべきページを入力するとクラッシュしてしまいます。 以下は、私の2つの.tsファイルです。
import { Component } from '@angular/core';
import { NavController, LoadingController } from 'ionic-angular';
import { RestService } from '../../providers/rest-service/rest-service';
@Component({
selector: 'page-all-patients',
templateUrl: 'all-patients.html',
providers: [RestService]
})
export class AllPatientsPage {
data: any;
loading: any;
constructor(public navCtrl: NavController, public restService: RestService, public loadingCtrl: LoadingController) {
this.loading = this.loadingCtrl.create({
content: `
<ion-spinner></ion-spinner>`
});
this.getdata();
}
getdata() {
this.loading.present();
this.restService.getJsonData().subscribe(
result => {
this.data=result.data.children;
console.log("Success: " + this.data);
},
err => {
console.error("Error : " + err);
},
() => {
this.loading.dismiss();
console.log('getData completed');
}
);
}
}
というファイル名で、もう一方のファイルは
import { Http } from '@angular/http';
import { Injectable } from '@angular/core';
import 'rxjs/add/operator/map';
/*
Generated class for the RestServiceProvider provider.
See https://angular.io/guide/dependency-injection for more info on providers
and Angular DI.
*/
@Injectable()
export class RestService {
constructor(public http: Http) {
console.log('Hello RestServiceProvider Provider');
}
getJsonData() {
// return Promise.resolve(this.data);
return this.http.get('url').map(res => res.json());
}
}
HttpModuleも使ってみましたが、致命的なエラーになります。エラーの内容は以下の通りです。
Error: Uncaught (in promise): Error: StaticInjectorError[Http]:
StaticInjectorError[Http]:
NullInjectorError: No provider for Http!
Error: StaticInjectorError[Http]:
StaticInjectorError[Http]:
NullInjectorError: No provider for Http!
at _NullInjector.get (http://lndapp.wpi.edu:8100/build/vendor.js:1276:19)
ionic frameworkで作成したプロバイダなので、なぜプロバイダなしエラーになるのか不明です。
どのように解決すればよいですか?
アプリでHttpを使用するためには、app.module.tsにHttpModuleを追加する必要があります。
import { BrowserModule } from '@angular/platform-browser';
import { NgModule, ErrorHandler } from '@angular/core';
import { HttpModule } from '@angular/http';
...
imports: [
BrowserModule,
HttpModule,
IonicModule.forRoot(MyApp),
IonicStorageModule.forRoot()
]
EDIT
下のコメントにもあるように
HttpModule
は
deprecated
では
import { HttpClientModule } from '@angular/common/http'
必ず
HttpClientModule
の中に
imports:[]
配列
関連
-
[解決済み] Angular CLIで特定のバージョンのAngularをインストールするには?
-
[解決済み] Angular2 bodyタグにクラスを追加する
-
[解決済み] RxJSのmap演算子でエラーを出す方法 (angular)
-
[解決済み] AngularでFormGroupに動的にaddControlを追加する
-
[解決済み] プロパティ 'controls' がタイプ 'AbstractControl' に存在しない Angular 4 [duplicate] 。
-
[解決済み] 64進数の文字列を角(2+)でエンコードおよびデコードする。
-
[解決済み] 角度換算2
-
[解決済み] Angular : ルートへの手動リダイレクト
-
[解決済み] Uncaught Error: Unexpected module 'FormsModule' declared by the module 'AppModule'. Pipe/@Directive/@Component アノテーションを追加してください。
-
[解決済み] Angular 2でコンポーネントの静的変数をHTMLにバインドする方法は?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] パイプ ' ' が見つかりません。
-
[解決済み] Angular2でNgForがPipeでデータを更新しない。
-
[解決済み] AngularでFormGroupに動的にaddControlを追加する
-
[解決済み] angular keyvalue pipe sort properties / iterate in order (アンギュラーキーバリューパイプソートプロパティ / イテレートオーダー)
-
[解決済み] Angular cli - ng serve時の自動リロードを無効にする方法
-
[解決済み] ngFor を使用して、Typescript Enum を文字列の配列として反復処理するにはどうすればよいですか?
-
[解決済み] の@ViewChildのreadパラメータは何ですか?
-
[解決済み] Angular2 ルーターがクエリ文字列を保持する
-
[解決済み] Angular2で複数のルートパラメータを渡す
-
[解決済み] Angular 2 コンポーネントコンストラクタとOnInitの比較 [重複]。