2017-11-26 8 views
0

私が使用している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データそのものを呼び出すこと、または読み込み画面を却下することに問題があるのか​​?アプリケーションがエラーメッセージなしで実行されるので、私は混乱しています。

+1

あなたは何を置いて発生した場合、このようなものでなければなりません 'this.loading.dismiss();' 'subscribe'最初の2つのパラメータ(機能とエラーハンドラをフェッチ)内の?いずれかの人が呼ばれますか? (成功またはエラー)? – Alexei

+0

@Alexeiそれは 'err => {' call – Drew

+0

で実行されています。したがって、 "通常の"パスとエラーパスの両方でローダーを閉じてください。 'サジェタラン(Sajeetharan) 'は問題なく動くはずのパターンを示した。 – Alexei

答えて

2

あなたのgetDataは

getdata() { 
    this.loading.present(); 
    this.restService.getJsonData().subscribe(
    result => { 
     this.data=result.data.children; 
     console.log("Success: " + this.data); 
     this.loading.dismiss(); 
    }, 
    err => { 
     console.error("Error : " + err); 
     this.loading.dismiss(); 
    } 
); 
+0

私はこの変更を行ったが、 'err'はまだ呼び出されている。これは自動的に 'getJsonData()'メソッドでエラーになるのですか、ここでエラーを引き起こしているhtmlコードでデータがどのように呼び出されるのでしょうか? – Drew

関連する問題