2017-04-04 11 views
0

私はionic 2の詳細についてこの例を試しています。私はionic appでデータを取得して表示したいだけです。mySQLデータベースとPHPを使用しています私がionic serveを実行すると、データはエラーなく取り込まれますが、私は空のホームページを取得しています。私はhome.ts ..、home.htmlとtest.phpファイルを追加しました。誰かが私に間違っていることを教えてもらえますか?ありがとうございました。HTTPを使用して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代わりに出力する子どもたちのプロパティを持っている値を試してみてください; '..あなたの' data'は 'children'プロパティを持っていませんので、投稿は未定義です。 –

+0

正しいPHPコードが表示されていますか? –

+0

@surajはい..、それは正しいPHPコードです –

答えて

1

PHPスクリプトからの出力結果は、あなたがdata.data.childrenにアクセスしようとするあなたの購読方法で

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

だろう。 555はchildrenという名前のプロパティを持つオブジェクトではないので、posts変数は未定義です。

あなたのページはhome.htmlページに「正しい」データが表示されています。

私は便利なパーサを持っていないので、PHPでその慣れていないんだけど、

$output = array(
'success'=>'yes', 
'data'=>array(
    'children'=>array(
    array('data'=>array('url'=>'http://www.example.com')) 
)) 
); 
関連する問題