在角度2中以任何类型转换api响应时未定义

时间:2016-09-15 12:23:32

标签: angular typescript

我想存储像public initData: any = ['Group 1', 'Group 2', 'Group 3'];这样的数据。 我正在调用一个API,它给出了这个响应 Image

我宣布private initData: any;并在收到回复之后尝试将其存储在此类

this.userService.getUserRolesById(this.id)
    .subscribe(data => {
        this.initData = data.Name;
        console.log(this.initData);
})

userservice

public getUserRolesById(id: number) {
    return this.httpHelper.get(this._getUserRolesByIdUrl+'?userId='+id)
        .map(res => res.json());
}

1 个答案:

答案 0 :(得分:3)

这里的问题是你得到一个数组,你想在这个数组中有一个属性。

public initData:string[] = [];//Typing your arrays is important ;).
...
...
...
this.userService.getUserRolesById(this.id)
    .subscribe(roles => {
        roles.forEach(role => {
            console.log(role.Name);
            this.initData.push(role.Name);
        }
});