Angular 2 - 没有数据后,请致电

Angular 2 - 没有数据后,请致电

问题描述:

我正在玩角2和英雄教程。问题是无论我打电话给我哪个API,我都会得到一个空对象。Angular 2 - 没有数据后,请致电

下面是代码:

app.compomnent.ts

import { Component, OnInit }   from '@angular/core'; 
import { Http, Response } from '@angular/http'; 

// Add the RxJS Observable operators we need in this app. 
import './rxjs-operators'; 

@Component({ 
    selector: 'my-app', 
    template: ` 
    <h1>Test</h1> 
    ` 
}) 
export class AppComponent implements OnInit { 

    constructor(private http: Http) {} 

    private error: any; 

    ngOnInit() { 

    var request = this.http.get('http://date.jsontest.com'); 

    console.log("Request: " + request); 
    console.log("Map: " + request.map(res => res)); 

    console.log("Complete: " + this.http.get('http://date.jsontest.com') 
     .map(res => res.json()) 
     .catch(this.error)); 
    } 
} 

main.ts:

// The usual bootstrapping imports 
import { bootstrap }  from '@angular/platform-browser-dynamic'; 
import { HTTP_PROVIDERS } from '@angular/http'; 

import { AppComponent } from './app.component'; 

bootstrap(AppComponent, [ 
    HTTP_PROVIDERS 
]); 

结果在我的控制台:

enter image description here

+0

为什么你认为这是一个空的对象不做些什么吗?如果你自己记录它,你可以检查对象的内容:'console.log(request.map(result => res));' – Sjoerd

+0

@Sjoerd好吧,但我怎么能得到'http://date.jsontest.com'。 Object看起来像'Observable {_isScalar:false,source:Observable,operator:MapOperator}'而且在Object中我找不到'http:// date.jsontest.com'的假设数据。 – user1830414

一个Observable直到你订阅了它,因为他们是懒惰

ngOnInit() { 
    this.http.get('http://date.jsontest.com') 
     .map(res => res.json()) 
     .subscribe(
      data => this.data = data, 
      () => console.log('done'), 
      err => this.error(err)); 
    }