Angular可观察服务调用给出未定义的错误

时间:2018-04-14 18:18:54

标签: typescript angular-services http-get

我有一个服务,它进行API调用,重新调用有效用户的集合。 下面给出的是来自服务和组件的代码片段。

在将响应映射到服务中定义的局部变量时,我得到的错误是 - > ValidUserCollection未定义

注意:我对服务的调用是成功的,我确实将响应状态设置为200和Ok:true。 当我将响应映射到服务中定义的局部变量时,似乎只有问题。

有关我可能遗失或做错的建议吗?

以下是我在服务中定义的方法的服务代码。

 constructor(private http: Http){
        this.ValidUsersCollection = [];
    }

    GetAllUsers(): Observable<User[]>
    {
       return this.http.get('http://localhost:8055/api/user/GetAllUsers/', { headers: this.getHeaders() })
         .map(this.mapPersons)
    }

mapPersons(response:Response): User[]
    {
        return response.json().map(this.ValidUsersCollection)
     }

    private getHeaders() {
        let headers = new Headers();
        headers.append('Accept', 'application/json');  
        return headers;
    }


code from my component
    this.userSrv.GetAllUsers()
.subscribe(allusers => this.allUsersCollection = allusers);

1 个答案:

答案 0 :(得分:1)

尝试这样的事情:

let ValidUsersCollection : User[] = [];
constructor(private http: Http){}

GetAllUsers(): Observable<User[]> {
       return this.http.get('http://localhost:8055/api/user/GetAllUsers/', { headers: this.getHeaders() })
         .map(res =>{
           return res.json().map(items => { this.ValidUsersCollection = items });
     });
}