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
]);
结果在我的控制台:
答
一个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));
}
为什么你认为这是一个空的对象不做些什么吗?如果你自己记录它,你可以检查对象的内容:'console.log(request.map(result => res));' – Sjoerd
@Sjoerd好吧,但我怎么能得到'http://date.jsontest.com'。 Object看起来像'Observable {_isScalar:false,source:Observable,operator:MapOperator}'而且在Object中我找不到'http:// date.jsontest.com'的假设数据。 – user1830414