Angular 4 - 映射HTTP JSON响应
问题描述:
我试图设置一个平均堆栈crud应用程序。路线和功能是使用邮递员设置和测试的。我得到所有路线的正确答案。现在我正在尝试添加Angular应用程序在内部调用路由的视图部分。我正在尝试设置一个基本的获取路线。以下是我的部分代码:Angular 4 - 映射HTTP JSON响应
import { Component, OnInit } from '@angular/core';
import { UserService } from '../user.service';
@Component({
selector: 'app-user',
templateUrl: './user.component.html',
styleUrls: ['./user.component.css']
})
export class UserComponent implements OnInit {
users: {};
constructor(private userService: UserService) { }
ngOnInit() {
this.getUsers();
}
getUsers() {
this.userService.getAllUsers().subscribe(data => this.users = data);
}
}
和服务包含以下代码:
import { Injectable } from '@angular/core';
import { Http } from '@angular/http';
import 'rxjs/add/operator/map';
@Injectable()
export class UserService {
constructor(private http: Http) { }
getAllUsers() {
this.http.get('/api/users')
.map(res => res.json());
}
}
使用邮递员路线的样本响应如下:
{
"status": true,
"err": null,
"data": [
{
"_id": "59d5db344c46e83a14b94616",
"name": "test"
},
{
"_id": "59d5db3c4c46e83a14b94617",
"name": "hello"
}
]
}
它总是告诉我有以下错误: Property 'subscribe' does not exist on type 'void'.
我在做什么错了?有人能指出我做这个的标准方法吗?
答
试试这个:
你忘了你的getAllUsers返回()
getAllUsers() {
return this.http.get('/api/users')
.map(res => res.json());
}
缺少return语句是一个简单的打字错误是题外话上SO。 –