2016-07-28 9 views
0

データベースからレコードを取得しようとしていますが、observablesと次のコードを書きましたが、records.Can誰も助けてください。Observableを使用してdbからデータをフェッチする方法

私のコンポーネントは、

import { Injectable } from '@angular/core'; 
    import {Component} from '@angular/core'; 
    import {Http, Response, Headers} from '@angular/http'; 
    import {Observable} from 'rxjs/Observable'; 
    import { IDetails } from './details'; 
@Component({ 

    templateUrl: './components/search/search.html', 

}) 
@Injectable() 
export class Search { 

    details:IDetails[]; 

     constructor(public http: Http) { 
     this.http = http; 
     } 

    submit(id):any{ 


     var headers = new Headers(); 
     var id = localStorage.getItem('social_id') 
     headers.append('Content-Type','application/x-www-form-urlencoded') 
     this.http.get('http://localhost/a2server/index.php/profile/search/'+id,{headers:headers}) 
     .subscribe(
     response => { <IDetails[]> response.json(); }) 
} 
    } 

私は私のDBからレコードを取得しようとしています、私が観測を書き、次のコードで私はどのrecords.Can誰かが助けを提案してください取得しておりません。私の答えにあなたのコメントで

答えて

0

UPDATE

、私はあなたが観察を使用する理由が何であるかを尋ねると考えています。あなたの特定のコードでは、HttpオブジェクトがObservablesを返すように設計されているという事実以外にも、それを使う理由はあまりありません。私はあなたが良い事例になると、あなたのHttpコールが最良の方法ではないことを指摘しておきます。

あなたのHttpコールは、実際にコンポーネントの内部ではなくサービス内にあるはずです。コンポーネントは、あなたのサービスのObservableに登録する必要があります。 Observableとサービスをどのように活用するかを示すPlunkerがあります。

export class ComponentOne{ 
    private _videoID:number; 
    private _searchedItem:IVideo; 
    constructor(private _videoService:VideoService){ 
    this._videoID = 0; 
    this._searchedItem = {}; 
    } 

    componentClick():void{ 
    this._videoService.getVideo(this._videoID).subscribe((data: IVideo) => { 
    console.log(data); 
    }); 
    } 
} 

は、ここで私が観測を活用する方法で習熟するために使用さ本当に良いtutorialです。


「結果」変数に「詳細」変数を設定するのを忘れているようです。私はちょうどこれのように見えるようにあなたのサブスクライブ関数を調整する必要があると思う(これはあなたのPHPコールが動作していると仮定します)。

response => { this.details = <IDetails[]> response.json(); }) 
+0

はあなたにダンに感謝、それはステップ観測 MMR

+0

@nlr_pを使用する目的が何であるか、その後働いていた - 私はあなたが観察のために、なぜ必要コメントに求めていたと思います。私はそれを反映する答えを更新しました。 –

関連する問題