私が使用しているAPIエンドポイントからデータをロードしている間にイオンロード画面を実行するように設定しました。問題は、イオンアプリは決してローディング画面を却下してデータを表示しないことです。イオン呼び出し外のURLをチェックすると、jsonデータが既にロードされています。私はなぜそれがアプリケーションで呼び出されていないのか分からない。以下はIonicはAPIデータをロードしません
データを呼び出すページです:以下
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: 'Please wait while data is loading'
});
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');
}
);
}
}
RestServices.tsである:それは問題である場合
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_is_here').map(res => res.json());
}
}
誰もが、この問題を引き起こす可能性のあるものを知っていますjsonデータそのものを呼び出すこと、または読み込み画面を却下することに問題があるのか?アプリケーションがエラーメッセージなしで実行されるので、私は混乱しています。
あなたは何を置いて発生した場合、このようなものでなければなりません 'this.loading.dismiss();' 'subscribe'最初の2つのパラメータ(機能とエラーハンドラをフェッチ)内の?いずれかの人が呼ばれますか? (成功またはエラー)? – Alexei
@Alexeiそれは 'err => {' call – Drew
で実行されています。したがって、 "通常の"パスとエラーパスの両方でローダーを閉じてください。 'サジェタラン(Sajeetharan) 'は問題なく動くはずのパターンを示した。 – Alexei