2017-04-04 3 views
0

Ich probiere gerade dieses Beispiel aus, um mehr über ionic 2 zu erfahren. Ich möchte nur die Daten in meiner ionic app abrufen und anzeigen. Ich verwende mySQL-Datenbank und PHP .Wenn ich ionic dienen, werden die Daten ohne Fehler abgerufen, aber ich bekomme nur leere Homepage. Ich habe meine home.ts .., home.html und test.php Datei hinzugefügt. Kann mir jemand vorschlagen, was mache ich falsch? Vielen Dank.Verwenden von Http zum Abrufen von Remote-Daten von einem Server in Ionic 2

HOME.ts 

import { Component } from '@angular/core'; 
import { Http } from '@angular/http'; 
import 'rxjs/add/operator/map'; 

@Component({ 
selector: 'page-home', 
templateUrl: 'home.html' 
}) 
export class HomePage { 
posts: any; 
constructor(public http: Http) { 
this.http.get('http://192.000.00.000/test.php').map(res =>  res.json()).subscribe(data => { 
    this.posts = data.data.children; 
}, 

err => { 
    console.log("Oops!"); 
}); 
} 
} 

home.html 

<ion-header> 
<ion-navbar> 
<ion-title>Home Page</ion-title> 
</ion-navbar> 
</ion-header> 

<ion-content class="home page" > 
<ion-list> 
<ion-item *ngFor="let post of posts"> 
<img [src]="post.data.url" /> 
</ion-item> 
</ion-list> 
</ion-content> 

test.php 

    <?php 
    $output = array(
    'success'=>'yes', 
    'data'=>555 
    ); 

    echo json_encode($output); 
    ?> 

enter image description here

+1

'this.posts = data.data.children ; '.. Ihre' Daten' haben keine 'Kinder'-Eigenschaft .. also Beiträge sind nicht definiert. –

+0

Sind Sie sicher, dass Sie den richtigen PHP-Code angezeigt haben? –

+0

@suraj ja .., das ist der richtige PHP-Code –

Antwort

1

Ihre Ausgabe von PHP-Skript

{ 
    "success": "yes", 
    "data": 555 
} 

In Ihrem abonnieren Methode würde versuchen Sie data.data.children zuzugreifen. Da 555 kein Objekt mit einer Eigenschaft namens children ist, ist Ihre Posts-Variable nicht definiert.

Daher Ihre Seite ist home.html Seite zeigt die "richtigen" Daten.

ich mit PHP nicht so vertraut bin, da ich nicht ein Parser zur Hand haben, aber einen Wert ausgibt versuchen, die eine Kinder-Eigenschaft hat stattdessen

$output = array(
'success'=>'yes', 
'data'=>array(
    'children'=>array(
    array('data'=>array('url'=>'http://www.example.com')) 
)) 
); 
Verwandte Themen