【发布时间】:2018-06-17 14:01:56
【问题描述】:
我正在使用 Angular 5 并尝试从 JsonPlaceholder 获取一些数据。
首先我创建了服务,然后添加了:
import { HttpClientModule } from '@angular/common/http';
这是服务代码:
import { Injectable } from '@angular/core';
import { HttpClient } from '@angular/common/http';
@Injectable()
export class DataService {
private ROOT_URL = 'http://jsonplaceholder.typicode.com';
constructor(private http: HttpClient) {}
getPosts() {
this.http.get(`${this.ROOT_URL}/posts`).subscribe(data => {
return data;
});
}
}
最后,在我的 app.component.ts 上:
import { Component, OnInit } from '@angular/core';
import { DataService } from '../../services/data.service';
@Component({
selector: 'app-root',
templateUrl: './parent.component.html',
styleUrls: ['./parent.component.css']
})
export class AppComponent implements OnInit {
data;
constructor(private dataService: DataService) {
this.data = dataService.getPosts();
console.log(this.data;
}
ngOnInit() {
}
}
在控制台上它只是返回“未定义”
我做错了什么?
【问题讨论】:
-
你需要订阅()
-
@MicheleDibenedetto 他做到了:)
-
您的代码对我来说很好用。如果我
console.log(data.json()),我会在我的控制台中得到一个包含 100 个对象的数组。您只需要使用data而不是简单地返回它。 -
哦,抱歉我没注意到 :)
-
@MicheleDibenedetto 该代码适用于console.log,但由于某种原因不适用于'return'
标签: javascript angular typescript angular-services angular5