2017-04-30 12 views
-1

私のサービスに問題があります。私は、HTTPモジュールからJSONを取得し、クラス 'olders'をそれに記入するサービスを持っています。しかし、私が私のサービスを呼び出すと、何もしません。私のクラスの古い人はまだundifinedです... そして、yearbook.component.htmlの* ngFor指示をすれば、何も得られません... 私は思います私の問題は私のサービスから来ましたが、エラーがある場合、私は私が購読角度2のオブザーバブルが動作しません(Httpメソッド)

私yearbook.componentの内側にconsole.logを入れていても... を知らない:

import {Component} from '@angular/core' 
import {Olders} from './olders' 
import {OldersService} from './olders.service' 

@Component({ 
    moduleId: module.id, 
    selector: 'yearbook', 
    templateUrl: 'yearbook.component.html', 

}) 

export class YearbookComponent { 

    olders : Olders[]; 

    constructor(
    private _oldersService : OldersService 
){} 


    ngOnInit() { 

    this._oldersService.getOldersfromAPI() 
         .subscribe(res => {this.olders = res, 
              console.log(this.olders)}, 
            err => console.error(err.status) 
           ); 


    } 
} 

とolders.service:

すべてのあなたの答えを事前にの
import {Injectable} from '@angular/core' 
import {Http} from '@angular/http' 
import {Olders} from './olders' 
import 'rxjs/add/operator/map' 
import 'rxjs/add/operator/do' 

@Injectable() 

export class OldersService { 

    constructor(private _http:Http) { 

    } 

    getOldersfromAPI(){ 

    return this._http.get('../CDN/olders.json') 
        .do(x => console.log(x)) 
        .map(olders => {olders = olders.json()}); 
    } 
} 

おかげでみんな

+4

可能性のある重複した[私はどのようにObservable/http/async呼び出しからの応答を返しますか?]](http://stackoverflow.com/questions/43055706/how-do-i-return-the-response-from-an-observable-http-async-コールインアングル2) – echonax

+0

このURLは奇妙に見えます '../CDN/olders.json' –

+0

リクエストで相対パスを使用しない方が良い場合は、トップレベル(通常は 'src')から始まる「完全」パスを使用してください。あなたは何かエラーをコンソールにチェックしましたか?私はあなたがそのURLのための404エラーを得るだろうと思うでしょう:) – Alex

答えて

2

あなたのマッピングでreturn文が欠落しています

.map(olders => {olders = olders.json()}); 

は次のようになりますの

.map(olders => { return olders = olders.json()}); 
+0

お返事ありがとうございました。しかし、私はまだ同じ問題を抱えています。実際には、私のコンソールではページをロードするときに何も表示されない、または.doがコンソールにjsonを表示するという奇妙なことがありますか? –

+0

あなたのコードはうまくいきました。今テストしたところです...レスポンスタブを確認して、実際にデータを取得していますか?コードはそうでなければうまくいくようです:http://plnkr.co/edit/CtPmucjBv9yXa4AnOmMy?p=preview – Alex

+0

そうはい...あなたのデータを印刷する必要がありますので、私はあなたが何も得ていないと思う:) – Alex

関連する問題