2017-10-05 74 views
-1

我试图设置一个平均堆栈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'.

我在做什么错了?有人能指出我做这个的标准方法吗?

+1

缺少return语句是一个简单的打字错误是题外话上SO。 –

回答

2

试试这个:

你忘了你的getAllUsers返回()

getAllUsers() { 
    return this.http.get('/api/users') 
     .map(res => res.json()); 
    }